Как создать PDF-файл с несколькими страницами из объекта Graphics с помощью Java и itext

У меня есть абстрактный класс с абстрактным методом draw (Graphics2D g2) и методы print (), showPreview () , printPDF (). Для каждого документа в моей программе Java я реализую draw (), поэтому я могу распечатать, показать предварительный просмотр и создать файл PDF для каждого документа. Моя проблема в том, как создать PDF-файл с несколькими страницами из этого объекта Graphics. Я решил это, создав файл PDF для каждой страницы, а затем объединив файлы в один новый файл. Но должен быть способ получше. У меня есть следующий код для создания PDF-файла с одной страницей:

public void printPDF1(){
    JFileChooser dialog = new JFileChooser();
    String filePath = "";
    int dialogResult = dialog.showSaveDialog(null);
    if (dialogResult==JFileChooser.APPROVE_OPTION){
        filePath = dialog.getSelectedFile().getPath();
    }
    else return;
    try {
        Document document = new Document(new Rectangle(_pageWidth, _pageHeight));
        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(filePath));
        document.open();

        PdfContentByte cb = writer.getDirectContent();
        g2 = cb.createGraphics(_pageWidth, _height);
        g2.translate(0, (_numberOfPages - _pageNumber) * _pageHeight);
        draw(g2);
        g2.dispose();
        document.close();
    } 
    catch (Exception e2) {
        System.out.println(e2.getMessage());
    }
}
8
задан Community 27 April 2013 в 20:05
поделиться