itext
Создание Pdf: iText 5 по сравнению с iText 7
Поиск…
замечания
В исходном дизайне для iText было возможно создать объект Document
высокого уровня, а затем иметь разные объекты DocListener
прослушивают этот объект Document
. Это было достигнуто за счет использования разных авторов: PdfWriter
, HTMLWriter
и RtfWriter
. При использовании PdfWriter
внутренний документ PdfDocument
был создан. Этот низкоуровневый класс позаботился обо всех структурах, связанных с PDF. Более или менее то же самое верно для других форматов.
На протяжении многих лет iText специализировался и стал чистой библиотекой PDF. Создание HTML и RTF было прекращено, поэтому больше не нужно было создавать Document
перед созданием PdfWriter
, но мы должны были придерживаться оригинальной архитектуры, потому что мы не были готовы разорвать API.
На протяжении многих лет мы добавляли все больше функций PDF в iText, и тот факт, что PdfDocument
был классом для внутреннего использования, стал проблематичным. Мы использовали обходные пути, чтобы мы могли внедрять новые функции PDF, принадлежащие классу PdfDocument
до тех пор, пока мы не достигли предела того, что мы считаем приемлемым в качестве обходных решений.
Именно тогда мы решили переписать iText с нуля и создать совершенно новую архитектуру для iText. Теперь у нас есть четкое различие между PdfDocument
(для операций низкого уровня) и Document
(для высокоуровневых функций). Нам больше не нужно открывать документ, и если мы будем использовать подход « попробуй-с-ресурсами» , нам даже не придется его закрывать.
Хотите узнать больше? Получите бесплатную электронную книгу!
HelloWorld.java (iText 5)
Предположим, что мы хотим создать простой документ Hello World:
В iText 5 это будет сделано следующим образом:
public void createPdf(String dest)
throws DocumentException, IOException {
Document document = new Document();
PdfWriter.getInstance(
document, new FileOutputStream(dest));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
}
Источник: developers.itxtpdf.com
HelloWorld1.java и HelloWorld2.java (iText 7)
Предположим, что мы хотели создать простой документ Hello World:
В iText 7 мы могли бы сделать так:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
document.add(new Paragraph("Hello World!"));
document.close();
}
Или мы могли бы сделать это так:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
try (Document document = new Document(pdf)) {
document.add(new Paragraph("Hello World!"));
}
}
Источник: developers.itxtpdf.com и учебник iText 7: Building Blocks .