【问题标题】:Best free alternative to Acrobat SDK in order to manipulate PDF document in c# .net为了在 c# .net 中操作 PDF 文档,Acrobat SDK 的最佳免费替代品
【发布时间】:2012-01-29 18:30:49
【问题描述】:

我需要在不使用 Acrobat SDK(需要安装完整的 Acrobat Professional)的情况下将书签添加到 pdf 文档。 我正在使用 iTextSharp,但它是为 Java 制作的,并且移植到 .net 还不完整。 您知道免费的替代方法或文档吗?

【问题讨论】:

  • 您需要“像啤酒一样免费”的解决方案吗?
  • 我认为 ItextSharp 是 acrobat sdk 的最佳免费替代品
  • 问题是:iTextSharp 仅对开源项目免费。

标签: pdf-generation itextsharp bookmarks acrobat-sdk


【解决方案1】:

您声称“iTextSharp 但它是为 Java 制作的,并且移植到 .net 并不完整”是完全错误。主要区别是listed here

使用 iTextsharp 添加书签很简单。请参阅 PdfOutlinePdfDestination 的 API。下面是一个简单的示例,可以帮助您入门:

using (Document document = new Document()) {
  PdfWriter writer = PdfWriter.GetInstance(
    document, Response.OutputStream
  );
  document.Open();
  PdfOutline root = writer.RootOutline;
  string section = "Section {0}";
  string paragraph = "Paragraph {0}";
  for (int i = 0; i < 10;) {
    PdfOutline sectionBookmark = new PdfOutline(
      root, 
      new PdfDestination(
        PdfDestination.FITH, writer.GetVerticalPosition(true)
      ),
      string.Format(section, ++i)
    );
    document.Add(new Paragraph(string.Format(section, i)));
    for (int j = 0; j < 4;) {
      PdfOutline subSectionBookmark = new PdfOutline(
        sectionBookmark,
        new PdfDestination(
          PdfDestination.FITH, writer.GetVerticalPosition(true)
        ),
        string.Format(paragraph, ++j)
      );
      document.Add(new Paragraph(string.Format(paragraph, j)));
    }
    document.NewPage();
  }
}

以上示例在 5.1.3 的 Web 环境中测试。如果您的开发环境不同,请将上面的Response.OutputStream 替换为您选择的Stream

【讨论】:

  • 谢谢!我会接受你的回答,但是因为我需要在现有文档中添加书签,并且书签里面需要有一个 javascript,所以我的目的与你的代码有点不同。我的问题是,Java 中存在 PDFstamper.setOutline 方法而不是 c# 中的等效方法是什么?
  • 这是 C# 中的一个属性 => stamper.Outlines = outlines;。每当您在 C# 中找不到某些内容时,请查找从 Java 方法名称中删除了 set 的属性。抱歉,既然我阅读了您的评论,我应该意识到您正在使用现有的 PDF。你有the book吗?即使您不这样做,也请查看Chapter 7 examples,可能以this one 开头。它应该会有所帮助。
猜你喜欢
  • 2011-01-21
  • 2010-12-01
  • 2010-11-08
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多