【发布时间】:2011-06-03 23:40:36
【问题描述】:
我想要的是在 iText 中加载一个纯 PDF 文件并将其导出(或写入)为 PDF/A1-A。
我已经手动使用 iTextSharp 获得了“iText in action sec.edit”。 Still Progress == null。
【问题讨论】:
标签: c# itextsharp itext pdfa
我想要的是在 iText 中加载一个纯 PDF 文件并将其导出(或写入)为 PDF/A1-A。
我已经手动使用 iTextSharp 获得了“iText in action sec.edit”。 Still Progress == null。
【问题讨论】:
标签: c# itextsharp itext pdfa
嗨,伦纳德。 (Leonard 为 Adobe 工作,担任他们的 PDF Dev Evangelist Guy。他的 PDF-Fu 是强大。我将避免在一些虚假的谦虚尝试中比较我们的强大。)>:)
任意 PDF -> PDF/A1-A 几乎是不可能的。 1-A 需要在您的标记中嵌入大量格式信息...大约与将 PDF 重建为 html/css 所需的信息一样多。
从“这是一堆带有这些坐标的行和字符”到“这是一个包含 X 列和 Y 行的表格,并且其单元格中有以下信息”非常困难。几乎不可能。
PDF/A1-b 更加逼真,但仍然不容易。您需要将所有内容放入一组特定的色彩空间和渲染意图和things with molecular structures that your primitive intellect wouldn't understand。
(严重的错误引用,但其中仍有一些有趣的地方,所以我放弃了。)
iText[Sharp] 支持生成 PDF/A,因为它会告诉你什么时候公然违反规范......但它可能无法捕捉到它,直到你调用 document.close ()。编写生成器的程序员仍然需要“手动”填写一整套信息。
不是没有人会说“我们将任意 PDF 转换成 PDF/A-1a”(不会说谎)。你把我指向一些这样说的软件,我会给你一个完全有效的 PDF,它会破坏它。每次。我敢赌它。
您需要一份 PDF/A ISO 规范 ($)。您需要一份 PDF ISO 规范 (free!)。你需要了解他们。然后你就会明白你的对手是什么。
现在就是“任意 PDF”。如果你有一堆来自同一个程序的报告实例,那么隧道尽头就有一盏灯。这仍然是一条很长的隧道,但问题降级为“困难”而不是“几乎不可能”。而且,一旦您有一份报告工作,从同一个应用程序处理类似的报告可能会相对容易。
还是不好玩。
【讨论】:
iText 不支持 PDF->PDF/A “开箱即用”的转换。
您当然可以使用库中的低级 API 作为编写此类转换器的起点...但这只是一个开始...
【讨论】:
试试这个。
PdfStamper pst = null;
PdfReader reader = new PdfReader(GetTemplateBytes());
pst = new PdfStamper(reader, Response.OutputStream);
pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4);
pst.Writer.PDFXConformance = PdfWriter.PDFA1A;
【讨论】: