pdf文件中的文本包含神秘空格

时间:2019-05-23 20:08:19

标签: android pdf

我正在尝试使用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);

此操作的结果是:

screen capture of PDF

乍一看,这看起来还可以,但是如果您放大一点或更好,但仍将文本复制/粘贴到记事本(或其他内容)中,则会得到以下提示:

  

不可以尝试

代替问题线,我还尝试了以下方法:

drawItem( canvas, paint, 10, false, Xposition, Yposition, memory.getText() );

这有一些好处,特别是对于较大的文本,但其他好处是同样的问题。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

感谢亨利的提示,现在问题已解决。 对于其他有相同问题的人: 我对字体的设置很满意,但是“ Arial”不起作用 “ Typeface.SANS_SERIF”也是如此。我的文字中不断出现这些奇怪的空格。

现在它如下所示。

paint.setTypeface(Typeface.create( Typeface.MONOSPACE, Typeface.NORMAL));

这不是看上去最好的文本标记,但目前可以解决问题。