使用iText

时间:2017-11-06 13:37:52

标签: itext tagged-pdf

最近我下载了iText的试用许可证。 我尝试实现以下目标:

  • 从WORD,PP,Excel等创建PDF文档。
  • 操纵现有PDF文件。
  • (最重要) - 根据WCAG 502的要求(PDF / UA),必须创建/转换为完全可访问的文件

我尝试了以下代码:(C#)

    LicenseKey.LoadLicenseFile(@"D:\Development\itextkey-0.xml");
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(DEST, new WriterProperties().SetPdfVersion(PdfVersion.PDF_1_7)));
    pdfDoc.SetTagged();
    pdfDoc.GetCatalog().SetLang(new PdfString("HE-IL"));
    pdfDoc.GetCatalog().SetViewerPreferences(
            new PdfViewerPreferences().SetDisplayDocTitle(true));
    PdfDocumentInfo info = pdfDoc.GetDocumentInfo();
    info.SetTitle("iText7 PDF/UA example");
    pdfDoc.Close();

但是,在Acrobat Reader上检查后,输出文件标记为“未标记”PDF文件。

请告知我应该如何使用iText来实现我的目标。

1 个答案:

答案 0 :(得分:2)

无法完成。

让我给你最简单的证据:
假设输入文件包含两只猫在纱球上作战的图像。

pdf / UA要求您为想象插入明智的替代文字 目前没有可用的系统能够为您投射的任何随机图像提供合理的标题。

更不用说无论系统如何为图像添加标题,都必须链接到完美的翻译服务。由于大多数图像识别服务都是英文的,这可能不是您正在编写文档的语言。这也意味着您需要一个能够检测您正在编写的语言的系统。

我们现在添加了3个非常难以解决的问题,只是为了能够处理图像:

  • 标记
  • 翻译
  • 语言检测

现在想象一下其他有趣的东西,比如

  • 图表和图表
  • ..

此外,PDF / UA需要嵌入字体。如果您遇到使用未嵌入字体的PDF,该怎么办?您是否可以访问可用于替换这些字体的字体程序?

在您的代码段中,您使用PdfReader,并提供文件SRC的路径。您需要转换Word,PPT和其他文件,但iText不会将Word,PPT等转换为PDF。 PdfReader仅接受PDF文件(如名称所示)。