用程序自动替换PDF文件中的图像

简介:
要使用Java代码,应该调用iText库。
要使用C#代码,应该调用iTextSharp库。


Here's the code to replace images in PDFs, in Java and C#. It will replace the first image in the first page.

Java代码

PdfReader pdf =  new PdfReader( "in.pdf");
PdfStamper stp =  new PdfStamper(pdf,  new FileOutputStream( "c:\\out.pdf"));
PdfWriter writer = stp.getWriter();
Image img = Image.getInstance( "image.png");
PdfDictionary pg = pdf.getPageN(1);
PdfDictionary res =
    (PdfDictionary)PdfReader.getPdfObject(pg.get(PdfName.RESOURCES));
PdfDictionary xobj =
    (PdfDictionary)PdfReader.getPdfObject(res.get(PdfName.XOBJECT));
if (xobj !=  null) {
     for (Iterator it = xobj.getKeys().iterator(); it.hasNext(); ) {
        PdfObject obj = xobj.get((PdfName)it.next());
         if (obj.isIndirect()) {
            PdfDictionary tg = (PdfDictionary)PdfReader.getPdfObject(obj);
            PdfName type =
                (PdfName)PdfReader.getPdfObject(tg.get(PdfName.SUBTYPE));
             if (PdfName.IMAGE.equals(type)) {
                PdfReader.killIndirect(obj);
                Image maskImage = img.getImageMask();
                 if (maskImage !=  null)
                    writer.addDirectImageSimple(maskImage);
                writer.addDirectImageSimple(img, (PRIndirectReference)obj);
                 break;
            }
        }
    }
}
stp.close();




C#代码:
PdfReader pdf =  new PdfReader( "in.pdf");
PdfStamper stp =  new PdfStamper(pdf,  new FileStream( "out.pdf",
FileMode.Create));
PdfWriter writer = stp.Writer;
Image img = Image.GetInstance( "image.png");
PdfDictionary pg = pdf.GetPageN(1);
PdfDictionary res =
    (PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));
PdfDictionary xobj =
    (PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));
if (xobj !=  null) {
     foreach (PdfName name  in xobj.Keys) {
        PdfObject obj = xobj.Get(name);
         if (obj.IsIndirect()) {
            PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
            PdfName type =
                (PdfName)PdfReader.GetPdfObject(tg.Get(PdfName.SUBTYPE));
             if (PdfName.IMAGE.Equals(type)) {
            PdfReader.KillIndirect(obj);
            Image maskImage = img.ImageMask;
             if (maskImage !=  null)
                writer.AddDirectImageSimple(maskImage);
                writer.AddDirectImageSimple(img, PRIndirectReference)obj);
                 break;
            }
        }
    }
}
stp.Close();









本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/149127,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
3月前
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
514 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
|
3月前
|
文字识别 Serverless 开发工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
272 5
|
3月前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
325 8
|
4月前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
357 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
5月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
808 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
5月前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
140 16
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
Documind:开源 AI 文档处理工具,将 PDF 转换为图像提取结构化数据
Documind 是一款利用 AI 技术从 PDF 中提取结构化数据的先进文档处理工具,支持灵活的本地或云端部署。
261 8
Documind:开源 AI 文档处理工具,将 PDF 转换为图像提取结构化数据
|
7月前
|
Java Apache Maven
将word文档转换成pdf文件方法
在Java中,将Word文档转换为PDF文件可采用多种方法:1) 使用Apache POI和iText库,适合处理基本转换需求;2) Aspose.Words for Java,提供更高级的功能和性能;3) 利用LibreOffice命令行工具,适用于需要开源解决方案的场景。每种方法都有其适用范围,可根据具体需求选择。
|
7月前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
2181 1

热门文章

最新文章