iTextsharp 将语言添加到 PDF 文档

Posted

技术标签:

【中文标题】iTextsharp 将语言添加到 PDF 文档【英文标题】:iTextsharp adding language to PDF document 【发布时间】:2015-04-02 01:50:14 【问题描述】:

我正在使用 iTextsharp dll 版本 (5.5.5.0)。我需要复制一个pdf文件。目标文件的语言应为“en-GB”。这应该在文档属性-> 高级-> 语言中我尝试通过 c# 执行此操作

代码如下

           iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(@"C:\Users\Administrator\Desktop\a.pdf");
            iTextSharp.text.pdf.PdfStamper stamper = new iText.PdfStamper(reader, new FileStream(@"C:\Users\Administrator\Desktop\b.pdf", FileMode.Create));
            stamper.Writer.ExtraCatalog.Put(iText.PdfName.LANG, new iText.PdfString("EN"));

            stamper.Close();

不确定我是否遗漏了其他任何东西。我尝试以不同的方式执行此操作,但看不到。 b.pdf 中的语言。

                iTextSharp.text.Document doc = new iTextSharp.text.Document();

            iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(@"C:\Users\Administrator\Desktop\a1.pdf");
            iText.PdfCopy copy = new iText.PdfCopy(doc, new FileStream(@"C:\Users\Administrator\Desktop\b.pdf", FileMode.Create));

            doc.Open();
           doc.AddLanguage("en-US");




            for (int page = 0; page < reader.NumberOfPages; )
            
                copy.AddPage(copy.GetImportedPage(reader, ++page));
            

            copy.FreeReader(reader);
            reader.Close();
            doc.Close();

有人可以告诉我我需要做什么..

【问题讨论】:

【参考方案1】:

在 PdfWriter 对象上设置语言;

writer.SetLanguage("en-GB");

PdfCopy 的代码相同,看看它是如何成为 PdfWriter 的子类。

【讨论】:

我尝试指定代码,因为它不起作用。你能帮我解决这个问题吗? doc.Open(); doc.AddLanguage("en-US"); for (int page = 0; page 忘记在上面的评论中更新我有 doc.AddLanguage("en-GB"); 在打开文档之前尝试设置语言。 尝试在打开文档之前指定它。 copy.SetLanguage("en-GB");还是不行..【参考方案2】:

尝试在旧版本的 Adob​​e Reader 中使用。有用。在 Adob​​e XI 中尝试过。问题就在那里。

【讨论】:

以上是关于iTextsharp 将语言添加到 PDF 文档的主要内容,如果未能解决你的问题,请参考以下文章

使用 iTextSharp 将多个页面添加到 pdf 表单

iTextSharp操作PDF

如何用.net技术中的itextsharp给pdf文档中添加超链接水印?

ITextSharp PdfCopy 使用示例

C#工具类:使用iTextSharp操作PDF文档

如何使用 iTextSharp 为横向生成的页面添加页脚到 PDF 文档