首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用iTextSharp设置PDF版本

使用iTextSharp设置PDF版本
EN

Stack Overflow用户
提问于 2011-06-08 10:46:52
回答 4查看 16.9K关注 0票数 4

有谁知道如何使用iTextSharp以编程方式将PDF保存为较低的PDF版本,以便您可以使用某些要求PDF版本为5或更低的iTextSharp功能?

我正在尝试将两个PDF版本7文档合并在一起,但它坚持要求它们是版本5或更低版本。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-09 01:14:00

太奇怪了。PDF版本主要是一种建议。PDF必须以以下内容开头:

代码语言:javascript
运行
复制
%PDF-1.x

其中X是0,1,2,...

这只是阅读PDF的应用程序的一个线索。唯一的线索。我从不同的客户那里看到的大多数“我需要X版本”的请求都是假的。我的iText程序员同事知道这一点,所以iText要求一个不同的版本让我感到奇怪。

您确定这是iText请求v5吗?

无论如何,回答你的问题:

可以,iText可以更改版本号。遗憾的是,它只能在写出PDF时完成,而不能在读入时完成。您必须打开PDF,更改其版本,然后再次保存。

你可能会作弊。将PDF读取到字节数组和pdfBytes[7] = 4;中,然后将这些字节传递给PdfReader

PDF规范的版本1是1.0,版本2是1.1 ...

所以如果你想要pdf版本5,你需要写成"1.4",而不是"1.5“。

如果你不习惯这样戳一个字节,你可以解析整个PDF,更改版本,然后再写出来:

代码语言:javascript
运行
复制
 PdfReader reader = new PdfReader(pdfPath);
 PdfStamper stamper = new PdfStamper(reader, outputStream);
 stamper.setPdfVersion(PdfWriter.PDF_VERSION_1_4);
 stamper.close();

然后你再读一遍,然后像以前一样组合起来。

票数 3
EN

Stack Overflow用户

发布于 2013-09-30 20:38:39

代码语言:javascript
运行
复制
///for itextSharp 5.4.4
PdfReader reader = new PdfReader(pdfPath);
PdfStamper stamper = new PdfStamper(reader, outputStream); 
stamper.Writer.setPdfVersion(PdfWriter.PDF_VERSION_1_4); 
stamper.close(); 
票数 5
EN

Stack Overflow用户

发布于 2013-05-04 00:12:01

看起来这已经不再有效了,至少对我来说它不起作用。然而,我发现了这一点,它对我很有效:http://itext-general.2136553.n4.nabble.com/iTextSharp-PDF-version-td3477631.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6273676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档