2012-04-19 5 views
1

У меня есть изображение SWT. Я хочу экспортировать это изображение в pdf-файл, используя iText API. Я попытался сохранить это изображение на диске, а затем используя путь изображения для экспорта его в pdf, это занимает много времени для создания pdf. Я также попытался преобразовать SWT-изображение в AWT-образ, а затем экспортировать его в файл , этот подход требует еще больше времени для создания pdf. Другой подход, который я пытался это преобразовать исходные данные изображения в Jpeg ByteArrayOutputStream с использованием ImageLoader объекта, как показано ниже:Экспорт SWT-изображения в PDF с использованием Java iText API

ImageLoader tempLoader = new ImageLoader(); 
tempLoader.data = new ImageData[] { 
    image.getImageData()      
}; 
ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
tempLoader.save(bos, SWT.IMAGE_JPEG); 

Теперь я использую этот ByteArrayOutputStream в качестве входных данных для

OutputStream outStream = new FileOutputStream(selectedPathAndName); 
Document document = new Document();  
document.setMargins(0,0,0,0); 
document.setPageSize(new Rectangle(0,0,width,height)); 
PdfWriter.getInstance(document, outStream); 
document.open(); 
com.itextpdf.text.Image pdfImage = com.itextpdf.text.Image.getInstance(bos.toByteArray()); 
document.add(pdfImage); 
document.close(); 

Это генерирует файлы PDF с шириной и высотой, которые я установил, но страница кажется пустой. Любые предложения или любой другой подход приветствуются.

Спасибо,

ответ

1

Это выглядит ваши размеры страницы равны нулю, попробуйте установить их на что-то вроде A4 в конструкторе.

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

Смежные вопросы