以下のコードは、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);
}
}