iTextSharp ColumnText.SetSimpleColumn Addtext 导致 Adob​​e Reader X 10.1.5 中出现错误

标签 itext adobe-reader

下面的代码说明了我在使用 iTextSharp 时遇到的问题。一切都很完美。 pdf 文件已创建并在屏幕上正确显示。当我从 Adob​​e Reader X 打印 pdf 时,它看起来完全正确,但 Adob​​e 报告“此页面存在错误。Acrobat 可能无法正确显示该页面。请联系创建 PDF 文档的人员来更正问题。”

不幸的是,该文件必须附加到电子邮件中并发送给客户。错误消息看起来不太好,我想修复它。在我尝试过的所有 Reader 版本中都会发生这种情况,包括今天安装的 10.1.15。

我在 Windows 7 Pro SP1 下安装了 iTextSharp 5.3.4.0

    private void writeTestDoc()
    {
        string fname = "test.pdf";
        float textWidth = 500;
        float leftMgn = 60;
        float rubricTop = 720;
        float leftPad = 5;
        float topPad = 12;
        float leading = 0;
        BaseFont baseCalibri = BaseFont.CreateFont("c:/windows/fonts/calibri.ttf", BaseFont.WINANSI, true);
        Font plainFont = new Font(baseCalibri, 11, Font.NORMAL);
        Document document = new Document();
        try
        {
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fname, FileMode.Create));
            document.Open();
            PdfContentByte cb = writer.DirectContent;
            cb.BeginText();
            ColumnText ct = new ColumnText(cb);
            float boxTop = rubricTop;
            ct.SetSimpleColumn(leftMgn + leftPad, boxTop - topPad, leftMgn + textWidth, boxTop, leading, Element.ALIGN_CENTER);
            ct.AddText(new Phrase("A test message", plainFont));
            ct.Go();
            cb.EndText();
            document.Close();
        }
        catch (Exception ex)
        {
            writeFile("ERROR in writeTestDoc " + ex.Message);
        }
    }

最佳答案

删除cb.BeginText();cb.EndText();。嵌套 BT/ET 文本对象是非法的。报告您找到告诉您将 BeginText()/EndTextColumnText 结合使用的文档的位置,以便我们可以要求作者从他或她的文档中更正它。

关于iTextSharp ColumnText.SetSimpleColumn Addtext 导致 Adob​​e Reader X 10.1.5 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246221/

相关文章:

ShellExecute Adob​​e Reader XI 安全警告对话框设置

java - 使用 XMLWorker 通过 iText ver 5 将 HTML 转换为 PDF 时丢失图像

Android ItextG 图像标签未呈现

c# - Mailkit:使用 iTextSharp XMLWorker 将 HtmlBody 转换为 pdf 会抛出 "The document has no pages"

c# - iTextSharp - 如何将文档转换为字节 []

vba - 在保存 PDF 表单时,如何阻止 Adob​​e Reader 询问 "Save As"(即只允许 "Save")?

javascript - 在 Adob​​e Reader JavaScript API 中将打印机重置为默认打印机

pdf - 如何调试损坏的pdf文件?

java - itext从pdf中获取特殊字母

php - 我如何检测客户端浏览器是否安装了 adobe reader 插件