Я пытаюсь создать гигантский PDF-файл, который будет содержать всю информацию на одной странице, поскольку между данными в документе не должно быть разрывов. он, вероятно, никогда не будет напечатан, поэтому размер PDF не является проблемой. Используя Itext, единственный способ, который я нашел возможным, - это создать страницу длиной 14400px "или 5M на страницах формата A4, но это оставляет пробел, если документ короче, чем ожидалось (я никогда не видел документ длиннее 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);