PDFBox PDPageContentstream.setTextMatrix() 使文本消失
PDFBox PDPageContentstream.setTextMatrix() making text disappear
我正在将 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
如果缩放 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();
我正在将 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
如果缩放 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();