使用iTextSharp将PDF转换为PDFA1-A

时间:2011-01-05 12:21:23

标签: c# itextsharp itext pdfa

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

手动和使用iTextSharp,我有“iText in action sec.edit”。仍然进展== null。

3 个答案:

答案 0 :(得分:7)

希亚伦纳德。 (伦纳德为Adobe作为他们的PDF Dev Evangelist Guy工作。他的PDF-Fu是 Mighty 。我将避免在虚假谦虚的模糊尝试中比较我们的强大。)>:)

任意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 [夏普]支持生成 PDF / A,当你对规范公然做某事时它会告诉你...但是在你调用document.close之前它可能无法捕获它()。编写生成器的程序员仍然需要“手动”填写整条信息。

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

您需要PDF / A ISO规范($)的副本。您需要PDF ISO规范(free!)的副本。你需要知道他们。然后你会明白你的反对意见。

现在所有的都是“任意PDF”。如果你有一堆报告的实例都来自同一个程序,那么隧道尽头有一盏灯。它仍然是一个很长的隧道,但问题降级为“硬”而不是“几乎不可能”。一旦你有一份报告工作,从相同的应用程序处理类似的报告很可能相对容易。

仍然没有乐趣。

答案 1 :(得分:1)

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

你当然可以使用库中的低级API作为编写这样一个转换器的起点......但它只是一个开始......

答案 2 :(得分:0)

试试这个。

        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;