2

以下のコードは、iTextSharpで発生する問題を示しています。すべてが完璧に機能します。PDFファイルが作成され、画面に正しく表示されます。Adobe Reader XからPDFを印刷すると、正確に表示されますが、Adobeから「このページにエラーがあります。Acrobatでページが正しく表示されない場合があります。PDFドキュメントの作成者に連絡して問題を修正してください」と報告されます。

残念ながら、ファイルは電子メールに添付してクライアントに送信する必要があります。エラーメッセージは見栄えが良くないので、修正したいと思います。これは、今日インストールされている10.1.15を含め、私が試したすべてのバージョンのReaderで発生します。

Windows 7ProSP1でiTextSharp5.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);
        }
    }
4

1 に答える 1

2

cb.BeginText();と を取り外しcb.EndText();ます。BT/ ETtext オブジェクトをネストすることは違法です。BeginText()/EndTextを と組み合わせて使用​​するように指示したドキュメントを見つけた場所を報告してください。ColumnTextそうすれば、著者にドキュメントからの修正を依頼できます。

于 2013-01-10T08:13:09.997 に答える