目前我正在尝试更改PDF文档中使用的字体。
因此我声明了矩形并使用LocationTextExtractionStrategy:
提取文本System.util.RectangleJ rect = new System.util.RectangleJ(fX, fY, fWidth, fHeight);
RenderFilter[] rfArea = { new RegionTextRenderFilter(rect) };
ITextExtractionStrategy str = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), rfArea);
string s = PdfTextExtractor.GetTextFromPage(reader, 1, str);
这可以按预期工作,但找到正确的坐标非常复杂。
但是如何将文本放在同一个起始位置fX,fY的新PDF文档中,这样我就不会破坏布局?
我使用ColumnText尝试了它,但是多行文本放在另一个上面:
Paragraph para = new Paragraph(fLineSpacing, s, font);
para.IndentationLeft = fLineIndentionLeft;
para.SpacingAfter = fSpacingAfter;
para.SpacingBefore = fSpacingBefore;
para.Alignment = iFontAlignment;
PdfContentByte cb = writer.DirectContent;
ColumnText ct = new ColumnText(cb);
ct.SetSimpleColumn(para, fX, fY + fHeight, fWidth + fX, fY, 0f, Element.ALIGN_LEFT);
ct.Go();
我错过了什么?还是有更简单的东西?使用我的方法,我将不得不覆盖定义大量矩形的整个页面。