我正在尝试使用android中的标准PDFdocument类将文本导出到pdf文档。该代码创建了pdf,但是在我写给PDF的文本中,它会将神秘的空格放在了一半的文字中。
尝试使用canvas.drawText选项和drawItemn选项。 两者给出相同的结果。问题代码行几乎位于下面的示例代码的底部。
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(mPageWidth, mPageHeight, pageNr).create();
PdfDocument.Page page = doc.startPage(pageInfo);
Memory memory = mMemoryData.get(pageNr);
Canvas canvas = page.getCanvas();
TextPaint paint = new TextPaint();
paint.setColor(Color.BLACK);
//Header
Yposition = drawItem( canvas,
paint,
18,
true,
Xposition,
Yposition,
memory.getTitle() );
//line
Yposition += 14; //Extra offset to get some space between the text and line
paint.setColor( ContextCompat.getColor(this, R.color.default_Accent) );
canvas.drawLine( Xposition, Yposition, pageInfo.getPageWidth() - Xposition, Yposition, paint );
Yposition += 20;
paint.setColor(Color.BLACK);
paint.setTextSize(10);
// **this is the line that gives the problem**
canvas.drawText(memory.getText(),Xposition, Yposition, paint);
doc.finishPage(page);
此操作的结果是:
乍一看,这看起来还可以,但是如果您放大一点或更好,但仍将文本复制/粘贴到记事本(或其他内容)中,则会得到以下提示:
不可以尝试
代替问题线,我还尝试了以下方法:
drawItem( canvas, paint, 10, false, Xposition, Yposition, memory.getText() );
这有一些好处,特别是对于较大的文本,但其他好处是同样的问题。
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
感谢亨利的提示,现在问题已解决。 对于其他有相同问题的人: 我对字体的设置很满意,但是“ Arial”不起作用 “ Typeface.SANS_SERIF”也是如此。我的文字中不断出现这些奇怪的空格。
现在它如下所示。
paint.setTypeface(Typeface.create( Typeface.MONOSPACE, Typeface.NORMAL));
这不是看上去最好的文本标记,但目前可以解决问题。