DS-3035 upgrade to PDFBox 2 (code builds, not tested)

This commit is contained in:
Ivan Masár
2016-02-04 00:59:52 +01:00
parent e066cd53d8
commit 0776a2622f
6 changed files with 27 additions and 25 deletions

View File

@@ -9,11 +9,11 @@ package org.dspace.disseminate;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.dspace.authorize.AuthorizeException;
@@ -274,13 +274,13 @@ public class CitationDocumentServiceImpl implements CitationDocumentService, Ini
@Override
public File makeCitedDocument(Context context, Bitstream bitstream)
throws IOException, SQLException, AuthorizeException, COSVisitorException {
throws IOException, SQLException, AuthorizeException {
PDDocument document = new PDDocument();
PDDocument sourceDocument = new PDDocument();
try {
Item item = (Item) bitstreamService.getParentObject(context, bitstream);
sourceDocument = sourceDocument.load(bitstreamService.retrieve(context, bitstream));
PDPage coverPage = new PDPage(PDPage.PAGE_SIZE_LETTER);
PDPage coverPage = new PDPage(PDRectangle.LETTER); // TODO: needs to be configurable
generateCoverPage(context, document, coverPage, item);
addCoverPageToDocument(document, sourceDocument, coverPage);
@@ -292,7 +292,7 @@ public class CitationDocumentServiceImpl implements CitationDocumentService, Ini
}
}
protected void generateCoverPage(Context context, PDDocument document, PDPage coverPage, Item item) throws IOException, COSVisitorException {
protected void generateCoverPage(Context context, PDDocument document, PDPage coverPage, Item item) throws IOException {
PDPageContentStream contentStream = new PDPageContentStream(document, coverPage);
try {
int ypos = 760;
@@ -360,7 +360,7 @@ public class CitationDocumentServiceImpl implements CitationDocumentService, Ini
}
protected void addCoverPageToDocument(PDDocument document, PDDocument sourceDocument, PDPage coverPage) {
List<PDPage> sourcePageList = sourceDocument.getDocumentCatalog().getAllPages();
PDPageTree sourcePageList = sourceDocument.getDocumentCatalog().getPages();
if (isCitationFirstPage()) {
//citation as cover page
@@ -375,7 +375,6 @@ public class CitationDocumentServiceImpl implements CitationDocumentService, Ini
}
document.addPage(coverPage);
}
sourcePageList.clear();
}
@Override
@@ -383,7 +382,7 @@ public class CitationDocumentServiceImpl implements CitationDocumentService, Ini
int startX, int startY, PDFont pdfFont, float fontSize) throws IOException {
float leading = 1.5f * fontSize;
PDRectangle mediabox = page.findMediaBox();
PDRectangle mediabox = page.getMediaBox();
float margin = 72;
float width = mediabox.getWidth() - 2*margin;
@@ -474,7 +473,7 @@ public class CitationDocumentServiceImpl implements CitationDocumentService, Ini
final int rows = content.length;
final int cols = content[0].length;
final float rowHeight = 20f;
final float tableWidth = page.findMediaBox().getWidth()-(2*margin);
final float tableWidth = page.getMediaBox().getWidth()-(2*margin);
final float tableHeight = rowHeight * rows;
final float colWidth = tableWidth/(float)cols;
final float cellMargin=5f;