0

我想要在 iText 中加载一个纯 PDF 文件并将其导出(或写入)为 PDF/A1-A。

我已经手动使用 iTextSharp 获得了“iText in action sec.edit”。仍然进步== null。

4

3 回答 3

7

嗨,伦纳德。(Leonard 为 Adob​​e 工作,担任他们的 PDF Dev Evangelist Guy。他的 PDF-Fu 非常强大。我将避免在一些模糊的虚假谦虚尝试中比较我们的强大。)>:)

任意 PDF -> PDF/A1-A 几乎是不可能的。1-A 需要在您的标记中嵌入大量格式信息......大约与将 PDF 重建为 html/css 所需的信息一样多。

从“这是一堆带有这些坐标的行和字符”到“这是一个有 X 列和 Y 行的表格,并且其单元格中有以下信息”是非常困难的。几乎不可能。

PDF/A1-b 更加逼真,尽管仍然不容易。您需要将所有内容放入一组特定的色彩空间中,并使用您的原始智力无法理解的分子结构来渲染意图和事物

(严重的错误引用,但那里仍然有些有趣,所以我离开了。)

iText[Sharp] 支持生成PDF/A,因为它会告诉你什么时候公然违反规范……但在你调用 document.close() 之前它可能无法捕捉到它。编写生成器的程序员仍然需要“手动”填写一整套信息。

不是没有人可以说“我们将获取一些任意 PDF 并将其转换为 PDF/A-1a”(不会说谎)。你把我指向一些这样说的软件,我会给你一个完全有效的 PDF,它会破坏它。每次。我敢赌钱。

您需要一份 PDF/A ISO 规范 ($)。您需要一份 PDF ISO 规范的副本(免费!)。你需要了解他们。然后你就会明白你要面对的是什么。

Now all that is "Arbitrary PDF". If you have a stack of instances of some report that are all coming from the same program, then there's a light at the end of the tunnel. It's still a long tunnel, but the problem degrades to "hard" instead of "almost impossible". And once you've got one report working, handing similar reports FROM THE SAME APP are likely to be relatively easy.

Still not fun.

于 2011-01-06T22:02:11.173 回答
1

iText 不支持“开箱即用”的 PDF->PDF/A 转换。

您当然可以使用库中的低级 API 作为编写此类转换器的起点……但这只是一个开始……

于 2011-01-05T17:03:10.823 回答
0

Try this.

        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;
于 2011-05-18T14:20:43.507 回答