Как я могу взять текст и конвертировать в PDF с альбомной ориентацией и двумя текстовыми столбцами? - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно изменить ориентацию бумаги, а затем разделить текст на две колонки. Хочу вот так:

enter image description here

Я пришел из большого текстового файла, и мне нужно добавить весь этот текст в PDF, как на фотографии.

PdfDocument pdfDoc = new PdfDocument(new PdfWriter(DEST));
PageSize ps = PageSize.A4;;
Document doc = new Document(pdfDoc, ps);
BufferedReader br = new BufferedReader(new FileReader("verybigfileWithText.txt"));
while ((line = br.readLine()) != null) {
//split pdf and add text in two column without overlapping page
}
doc.close();

И мне нужно иметь возможность изменять поля в центре (между двумя столбцами) и поля сверху / справа / бот / слева. И получим ширину каждого столбца:)

Помогите мне, пожалуйста Pdf: https://dropmefiles.com/HqD6f

1 Ответ

1 голос
/ 27 апреля 2019

Чтобы изменить ориентацию страницы, вы можете использовать PageSize#rotate, например, PageSize.A4.rotate()

Чтобы поместить содержимое в два (или более) столбца, вы можете создать свой собственный рендер документа или использовать существующийColumnDocumentRenderer, который соответствует вашим потребностям.Он принимает области столбцов, которые позволяют вам контролировать поля (или даже размещать столбцы особым образом, что, вероятно, не в вашем случае):

Document document = new Document(pdfDocument, PageSize.A4.rotate());
Rectangle[] columnAreas = new Rectangle[] {new Rectangle(30, 30, 350, 520), new Rectangle(430, 30, 350, 520)};
ColumnDocumentRenderer renderer = new ColumnDocumentRenderer(document, columnAreas);
document.setRenderer(renderer);

document.add(new Paragraph(text).setTextAlignment(TextAlignment.JUSTIFIED));

document.close();

Результат выглядит следующим образом: result

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...