我有这种方法从当前活动生成PDF:
public boolean convertToPDF(String pdfFileName) {
PdfDocument document = new PdfDocument();
View content = GraphActivity.rl_main;
int pageNumber = 1;
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(content.getWidth(),
content.getHeight(), pageNumber).create();
PdfDocument.Page page = document.startPage(pageInfo);
content.draw(page.getCanvas());
document.finishPage(page);
pdfFile = new File(pdfFileName);
try {
pdfFile.createNewFile();
OutputStream out = new FileOutputStream(pdfFile);
document.writeTo(out);
document.close();
out.close();
} catch (IOException e) {
Log.e("Error", "Could not create PDF file!");
return false;
}
return true;
}
出于某种原因,在Marshmallow中运行此方法时,我得到一个包含不可读字符的PDF文件。我已经在运行时授予了应用权限WRITE_EXTERNAL_STORAGE
。 Marshmallow有什么我需要做的事吗?我可以确认这适用于较旧的Android版本。
编辑:我在assets
文件夹中使用自定义字体。我想知道这与它有什么关系。
更新:我尝试禁用自定义字体,这解决了问题。但是,我更愿意保留自定义字体。