精华内容
下载资源
问答
  • itextpdfpdf文档添加图片主要流程1、构建图片对象2、放置图片3、pdf拼接 主要流程 1、构建图片对象 /** * signDetail 前端canvas 获取的图片信息 */ private static Image buildImageFromSource(String ...

    主要流程

    1、构建图片对象

    
    /**
     * signDetail 前端canvas 获取的图片信息
     */ 
    private static Image buildImageFromSource(String signDetail, float width, float height) {
        try {
            signDetail = clearPreffix(signDetail);
            Image image = Image.getInstance(Base64Utils.decodeFromString(signDetail));
    
            image.setAlignment(Image.LEFT);
            image.setBorder(Image.NO_BORDER);
            // 将px转成pt  需要 * 0.75,计算完成后,减去上下左右的36pt的边距
            image.scaleAbsolute((width * 0.75f) -72, (height * 0.75f) -72);
    
            return image;
        } catch (BadElementException | IOException e) {
            e.printStackTrace();
            log.error("创建image失败: {}", e.getMessage());
        }
        return null;
    }
    
    // 移除保存图片时不需要的前缀
    private static String clearPreffix(String detail) {
        if (detail.startsWith("data")) {
            // 获取点的位置
            int pointIdx = detail.indexOf(",");
            detail = detail.substring(pointIdx + 1);
        }
        return detail;
    }
    

    2、放置图片

    /**
     * 新建一个pdf,并追加图片
     * @param dest          输出文件
     * @param signDetails   图片详细
     */
    public static void newPdf(String dest, List<String> signDetails) {
        File file = new File(dest);
        if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) {
        }
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(dest);
            Document document = new Document(PageSize.A4);
    
            PdfWriter writer = PdfWriter.getInstance(document, fos);
            document.open();
    
            // 加载模板文件
            ClassPathResource resource = new ClassPathResource("tpl/signTpl.pdf");
            PdfReader reader = new PdfReader(resource.getInputStream());
            PdfImportedPage page = writer.getImportedPage(reader, 1);
            PdfContentByte cb = writer.getDirectContent();
    
            document.newPage();
            cb.addTemplate(page, 0, 0);
    
            float top = document.top();
            // 默认顶部拿掉,然后再扣掉页眉的高度
            float y = top - 66 - 20;
            float x = 36;
            int signHeight = 75;
            int rowCount = 3;
            for (int i = 0; i < signDetails.size(); i++) {
                String detail = signDetails.get(i);
                x = 90 + (i % rowCount) * 150;
    
                Image image = buildImageFromSource(detail, 214, 148);
                if (i % rowCount == 0) {
                    y -= signHeight;
                    if (y <= signHeight) {
                        document.newPage();
                        cb.addTemplate(page, 0, 0);
                        y = top - 66 - 90;
                    }
                }
                if (image != null) {
                    image.setAbsolutePosition(x, y);
                    document.add(image);
                }
            }
    
            document.close();
    
        } catch (IOException | DocumentException e) {
            e.printStackTrace();
        } finally {
            IoUtil.close(fos);
        }
    
    }
    

    3、pdf拼接

    public static void appendImgToPdf(String sourcePath, String targetPath, List<String> details) throws IOException {
        String tempPath = new File("/tmp/test").getAbsolutePath() + "/" + UUID.fastUUID().toString() + ".png";
        newPdf(tempPath, details);
        mergePdf(Lists.newArrayList(sourcePath, tempPath), targetPath);
    }
    
    public static void mergePdf(List<String> sourceFilePaths, String targtPath) throws IOException {
        PDFMergerUtility mergePdf = new PDFMergerUtility();
        for (String filePath : sourceFilePaths) {
            File file = new File(filePath);
            if (file.exists() && file.isFile()) {
                mergePdf.addSource(file);
            }
        }
        File file = new File(targtPath);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }
        mergePdf.setDestinationFileName(targtPath);
        mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
    }
    
    展开全文
  • 如何PDF添加文字?...如何使用傲软PDF编辑给PDF添加文字呢?请参考以下步骤。点击下方“立即下载”按钮,安装并电脑运行傲软PDF编辑。立即下载点击菜单栏的“文件”—“打开”,从电脑上传需要添加文字的...

    如何在PDF上添加文字?

    傲软PDF编辑

    傲软PDF编辑是一款专业的PDF编辑器,适用于Windows/Mac系统,使用它可以轻松编辑PDF文件,例如在PDF上添加文字,插入图片,绘制标记等,是一款简单实用的PDF工具。如何使用傲软PDF编辑给PDF添加文字呢?请参考以下步骤。点击下方“立即下载”按钮,安装并在电脑上运行傲软PDF编辑。

    立即下载

    点击菜单栏上的“文件”—“打开”,从电脑上传需要添加文字的PDF文件。

    bcfca6854c80d2116cb366af1754d39f.png

    在工具栏上点击“编辑”按钮,PDF文件出现编辑框,软件右侧出现编辑面板;

    06e110e4b7e4bf507b027731b8e94e90.png

    点击面板上的“添加文本”,然后在PDF添加文字的地方点击鼠标,这时在文本编辑框内输入文字,可设置字体,大小,颜色以及格式等。

    c45f2368d5ff4e3cae9bdbe290cf6a86.png

    在PDF上添加文字后,选择“文件”保存或者另存为,将PDF文件保存至电脑上。

    3532c707e2845b6039959382c85069d7.png

    除了在PDF上添加文本,傲软PDF编辑器支持在PDF中插入图片,调整图片的大小、选择图片位置、剪裁,旋转图片等,还可以对PDF进行合并、分割、压缩、水印、加密、打印,添加电子签名,OCR文字识别等,快下载试试吧。

    特点:适用于Windows和mac系统

    阅读/编辑PDF文件不限大小

    风云PDF编辑器

    风云PDF编辑器是一款适用于Windows系统的PDF工具,它提供比较完善的PDF编辑功能,支持查看PDF文件,编辑PDF文本,为PDF添加注释,加密等功能。

    如何在PDF上添加文字?操作也非常简单,在电脑上使用风云PDF编辑器打开PDF文档,然后使用编辑工具,添加文字之后保存即可。

    c807ad9c2539af2003eac37b4526c6f0.png

    特点:非VIP只可打开2M以内文件

    非VIP不支持编辑PDF

    PDFelement

    PDFelement是万兴旗下的产品,主营海外市场,PDFelement提供的PDF功能也比较全面,如何使用它在PDF上添加文字?首先打开软件,选择“PDF编辑”模式之后导入PDF文件,即可对PDF文件进行编辑。

    ecf0c35a10e70d55509f0038b527458d.png

    PDFelement支持编辑PDF文字以及图片,选中需要编辑对象后可随意拖动,并支持修改字体的大小、颜色,以及插入图片,剪裁图片等。还提供PDF转换,合并,打印,电子签名等功能,是一款功能齐全的PDF工具。

    特点:占用内存较大

    提供年度与终生VIP,会员收费较高

    总结

    以上三款PDF转换器都能解决“如何在PDF上添加文字”,操作也比较简单,轻轻松松即可修改文字,快来选择适合自己的一款吧!

    得分:4.3 /5(共有 31 人评分)感谢您的评分!

    展开全文
  • Java 添加PDF图片水印

    2021-02-28 07:20:49
    import com.spire.pdf.*;import java.awt.geom.Rectangle2D;public class Imgwatermark {public static void main(String[] args) {//实例化PdfDocument类的对象,并加载测试文档PdfDocument doc = new PdfDocument...

    import com.spire.pdf.*;

    import java.awt.geom.Rectangle2D;

    public class Imgwatermark {

    public static void main(String[] args) {

    //实例化PdfDocument类的对象,并加载测试文档

    PdfDocument doc = new PdfDocument();

    doc.loadFromFile("test.pdf");

    //获取文档第1页

    PdfPageBase page = doc.getPages().get(0);

    //加载图片,设置为背景水印

    page.setBackgroundImage("logo.png");

    //指定水印在文档中的位置及图片大小

    Rectangle2D.Float rect = new Rectangle2D.Float();

    rect.setRect(150, 150, 300, 150);

    page.setBackgroundRegion(rect);

    //保存文档

    doc.saveToFile("output/imageWaterMark.pdf");

    doc.close();

    }

    }

    展开全文
  • Java编程中,如何使用Java向PDF文档页面中添加图片?以下是使用Java向PDF文档页面中添加图片的示例程序。package com.yiibai; import java.io.File; import org.apache.pdfbox.pdmodel.PDDocument; import org....

    在Java编程中,如何使用Java向PDF文档页面中添加图片?

    以下是使用Java向PDF文档页面中添加图片的示例程序。

    package com.yiibai; import java.io.File; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; public class InsertingImageInPdf { public static void main(String args[]) throws Exception { PDDocument document = new PDDocument(); // Add an empty page to it document.addPage(new PDPage()); // Saving the document document.save("F:/worksp/javaexamples/java_apache_pdf_box/InsertImage_IP.pdf"); // Loading an existing document File file = new File("F:/worksp/javaexamples/java_apache_pdf_box/InsertImage_IP.pdf"); PDDocument doc = PDDocument.load(file); // Retrieving the page PDPage page = doc.getPage(0); // Creating PDImageXObject object PDImageXObject pdImage = PDImageXObject.createFromFile("F:/worksp/javaexamples/java_apache_pdf_box/logo.png", doc); // creating the PDPageContentStream object PDPageContentStream contents = new PDPageContentStream(doc, page); // Drawing the image in the PDF document contents.drawImage(pdImage, 70, 250); System.out.println("Image inserted"); // Closing the PDPageContentStream object contents.close(); // Saving the document doc.save("F:/worksp/javaexamples/java_apache_pdf_box/InsertImage_OP.pdf"); // Closing the document doc.close(); } }

    执行上面示例代码,得到以下结果 –

    Image inserted

    此时,程序已经创建一个新文件:F:/worksp/javaexamples/java_apache_pdf_box/InsertImage_OP.pdf。

    打开这个文件如下所示 –

    8-1581421376.png

    ¥ 我要打赏   纠错/补充 收藏

    展开全文
  • Java 添加图片PDF

    2021-02-12 12:55:41
    第一步:添加命名空间;import com.spire.pdf.*;...然后获取文档第一页,定义一个添加图片的方法;//创建PDF实例PdfDocument doc = new PdfDocument();//加载PDF源文件doc.loadFromFile("data/Sample.pdf");...
  • 本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下java操作pdf有个非常好用的库itextpdf,maven:com.itextpdfitextpdf5.5.6com.itextpdfitext-asian5.2.0思路:Adobe的...
  • 常见的水印,包括文字类型的水印、图片或logo类型的水印。以下Java示例,将分别使用insertTextWatermark(PdfPageBase page, String watermark)方法以及page.SetBackgroundImage(String arg0)方法来设置文本水印和...
  • 下面是示例代码import java.io.FileOutputStream;...import com.itextpdf.text.Rectangle;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.te...
  • /***inpdf 使用的pdf路径*outpdf 转换出来带水印的pdf路径*shuiyinpdf 水印的路径/public void test(String inPdf,String outPdf,String shuiyinpdf) throws Exception {PdfReader reader = new PdfReader(inPdf);...
  • 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片。工具:Free Spire.PDF for Java (免费版)Jar获取及导入:可通过e-iceblue中国官网下载,并解压将lib文件夹下的jar文件导入java程序,或者...
  • 四处寻找之后,我终于找到了解决办法:结果发现this毕竟是正确的方法。但是,我觉得这不够冗长。这张海报似乎是从here(相同的变量名等)中摘取的。想法:用Reportlab创建新的空白PDF,它只包含一个文本字符串。然后...
  • import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;...public class SetBackgroundImage {public static void main(String[] args) {//加载PDF文档PdfDocument doc = new PdfDocument(...
  • file.save(new File(RESULT_FOLDER, "PdfWithImage.pdf"), SerializationModeEnum.Standard); file.close(); } 我没有得到EOFException,而是看起来像预期的结果: 因此,问题似乎与您的JPG文件有关,其内容可能已被...
  • import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.annotations.PdfRubberStampAnnotation;import ...
  • 通过itextpdf操作PDF,向PDF文件最后一页添加图片(缩放图片并判断最后一页是否能放下图片)本人第一篇博客,哈哈!第一次接触itextpdf,想实现将图片PDF尾部追加(判断原页面使用情况,图片缩放后是否可以放的下...
  • 原标题:电脑怎样快速将图片PDF工作中文件转换的问题总是会经常出现,而出现频率最高的也就是各种文件转PDF的问题了,因为PDF文件传输方便,所以很多时候我们都需要将各种文件转换成PDF格式进行传输使用。...
  • 常见的水印,包括文字类型的水印、图片或logo类型的水印。以下Java示例,将分别使用insertTextWatermark(PdfPageBase page, String watermark)方法以及page.SetBackgroundImage(String arg0)方法来设置文本水印和...
  • 导入itextpdf** 依赖 <!-- itextpdf --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3</version> </...
  • PDF每页右添加图片水印 1、引入pom.xml <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </...
  • 经常会遇到一些pdf里需要添加文字以及签名的操作,通常不同的pdf ...文本转换而来的pdf,可以通过直接工具+修改内容方式修改 如若有是图片转换而来的pdf大量的需要修改,可以考虑先进行ORC,文字提取,然后进行修改!
  • 项目变,需求变,不变的永远是敲击键盘的程序员.....PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片....经历几次失败的尝试,终于获取到了正确的代码书写方式。此记录总结,方便下次以...
  • 如何在PDF文件中插入图像每当工作中收到一份PDF文件时,只要没有图片,阅读起来就会非常的枯燥无味,长时间的阅读还会带来睡意,而图片的使用能够更好的提高文件的阅读性。所以图片与文字的相配才是完整的一份PDF...
  • 以IDEA为例,新建Maven项目,xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下:com.e-icebluecloudhttp://repo.e-iceblue.cn/repository/maven-public/ cloud spire.cloud.sdk3.5.0 com.googl...
  • 比如要在pdf文件中添加水印、签名、盖章。下面以一个简单的main方法实现: public static void main(String[] args) throws Exception{ //pdf文件存放E盘 File file = new File("E:\\contract.pdf"); //合成...
  • 我正在尝试使用fpdf和FPDI在pdf添加 Raddyx Technologies 水印文本 . 水印出现所有页面,但我的水印所有页面都显示图像下方,空间更大 . 我希望我的水印图像能够显示在pdf上的现有图像之 . 我使用以下代码...
  • PDF作为一种常用的文件格式,经常会被使用到,当我们编辑PDF文件的时候,如果想要文件当中添加新的文字文本框,那么应该怎么操作?怎么在PDF文件中添加文字文本框?想要在PDF文件中添加文字文本框,那么就需要...
  • String InPdfFile = "D:\...String imgPath = "C:\\Users\\tang\\Desktop\\微信图片_20210621092925.png"; try { PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes()); PdfStamper stamp = new PdfStampe

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,035
精华内容 32,414
关键字:

如何在pdf上添加图片