я использую Apache PDFBox,
Я хочу преобразовать файл RGB PDF в другой файл GRAYSCALE БЕЗ метода изображений, потому что он создает огромный размер файла -_- !!
, так что это мойшаги:
Экспорт файла (A4) First.pdf из Adobe InDesign, содержащий изображения, тексты, векторные объекты.
Я прочиталПервый файл .pdf.Готово!
с помощью LayerUtility, скопируйте страницы из First.pdf, поверните их и поместите в НОВЫЙ PDF-файл (A4) Second.pdf.Готово!
- этот метод предпочтителен, потому что мне нужны векторные объекты для уменьшения размера.
- , затем я хочу сохранить его как PDF-файл GREY-SCALE(Second-grayscale.pdf)
и вот мой код (не все):
PDDocument documentFirst = PDDocument.load("First.pdf"));
// Second.pdf its empty always
PDDocument documentSecond = PDDocument.load("Second.pdf"));
for (int page = 0; page < documentSecond.getNumberOfPages(); page++) {
// get current page from documentSecond
PDPage tempPage = documentSecond.getPage(page);
// create content contentStream
PDPageContentStream contentStream = new PDPageContentStream(documentSecond, tempPage);
// create layerUtility
LayerUtility layerUtility = new LayerUtility(documentSecond);
// importPageAsForm from documentFirst
PDFormXObject form = layerUtility.importPageAsForm(documentFirst, page);
// saveGraphicsState
contentStream.saveGraphicsState();
// rotate the page
Matrix matrix;
matrix.rotate(Math.toRadians(90));
contentStream.transform(matrix);
// draw the rotated page from documentFirst to documentSecond
contentStream.drawForm(form);
contentStream.close();
}
// save the new document
documentSecond.save("Second.pdf");
documentSecond.close();
documentFirst.close();
// now convert it to GRAYSCALE or do it in the Loop above!
хорошо, я только начал использовать Apache Box на этой неделе, у меня естьпоследовали какому-то примеру, но большинство из них старые и не работают, до сих пор я делал то, что мне нужно, просто нужна шкала серого:) !!
, если есть другие решения в java, использующие open-Исходная библиотека или бесплатные инструменты.(я нашел с Ghost Script и Python)
Я прочитал этот пример, но я не понял его, и есть функции, которые устарели!:
https://github.com/lencinhaus/pervads/blob/master/libs/pdfbox/src/java/org/apache/pdfbox/ConvertColorspace.java
о PDF-спецификациях и изменении цветового пространства ...