我正在尝试制作一个巨大的PDF,它将在一页上包含所有信息,因为文档中的信息之间没有间断。它可能永远不会被打印出来,因此PDF的大小不是问题。使用Itext,我发现可能的唯一方法是创建一个长14400px的页面,或者在A4页面中创建5M的页面,但是如果文档比预期的要短,则会留下空白(我从未见过文档的长度超过14400px )到目前为止,这是我的代码
private void pdfSave() {
float pageWidth = 200f;
float pageHeight = 1440f;
Rectangle pageSize = new Rectangle(pageWidth, pageHeight);
Document mDoc =new Document(pageSize);
String mFileName = new SimpleDateFormat("ddMMyyyy_HHmmss",
Locale.getDefault()).format(System.currentTimeMillis());
String mFilePath = Environment.getExternalStorageDirectory()+"/"+"pdf_viewer"+"/"+mFileName+".pdf";
File dir = new File(mFilePath);
if(!dir.exists()){
dir.getParentFile().mkdir();
}
try{
PdfWriter.getInstance(mDoc, new FileOutputStream(mFilePath));
mDoc.setMargins(10,10,10,10);
mDoc.open();
String mText = mTextEt.getText().toString();
mDoc.add(new Paragraph(mText,FontFactory.getFont(FontFactory.HELVETICA, 4, Font.BOLDITALIC)));
mDoc.close();
}
编辑:我曾尝试使用注释中提到的裁剪框和第二遍,但如果调试它,我的应用程序会在此行崩溃
Rectangle rect = getOutputPageSize(pageSize, reader, i);