我正在將 POSPrint 資料轉換為 PDF。在某一點上,我需要將文本拉伸超過 2 行,但要使用普通文本的寬度。我正在嘗試像這樣存檔:
CONTENT.beginText();
Matrix textMatrix = new Matrix();
textMatrix.scale(1f, 2f);
CONTENT.setTextMatrix(textMatrix);
CONTENT.newLineAtOffset(50, 50);
CONTENT.setCharacterSpacing(line.getLineSpacing());
CONTENT.showText(restOfLine);
CONTENT.endText();
可悲的是,這導致文本根本不顯示。如果我洗掉用于添加文本矩陣的行,或者將矩陣比例值設定為 1,這將毫無問題地作業:
CONTENT.beginText();
Matrix textMatrix = new Matrix();
textMatrix.scale(1f, 1f);
CONTENT.setTextMatrix(textMatrix);
CONTENT.newLineAtOffset(50, 50);
CONTENT.setCharacterSpacing(line.getLineSpacing());
CONTENT.showText(restOfLine);
CONTENT.endText();
要么
CONTENT.beginText();
CONTENT.newLineAtOffset(50, 50);
CONTENT.setCharacterSpacing(line.getLineSpacing());
CONTENT.showText(restOfLine);
CONTENT.endText();
有人知道為什么會這樣嗎?
我使用 PDFBox 2.0.25
uj5u.com熱心網友回復:
如果您正在縮放 TextMatrix,則矩陣的位置也會受到影響。要修復移動縮放文本的這種不需要的行為,您還必須將文本位置除以比例。
CONTENT.beginText();
Matrix textMatrix = new Matrix();
textMatrix.scale(1f, 2f);
CONTENT.setTextMatrix(textMatrix);
CONTENT.newLineAtOffset(50, 50/2f); //devide y position by scale
CONTENT.setCharacterSpacing(line.getLineSpacing());
CONTENT.showText(restOfLine);
CONTENT.endText();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434793.html
上一篇:使用VBA寫入和保存到PDF
