Skip to content

Commit b52649c

Browse files
committed
Merge pull request #18 from jpotts/master
Add page number checks including ability to specify negative number
2 parents dab9e94 + d5466e4 commit b52649c

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ solr/solr_home
99
*.log.*
1010
*.log
1111

12+
pdf-toolkit-repo/bin

pdf-toolkit-repo/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
</dependency>
3434
<dependency>
3535
<groupId>org.alfresco</groupId>
36-
<artifactId>alfresco-enterprise-repository</artifactId>
36+
<artifactId>alfresco-repository</artifactId>
3737
<version>${alfresco.version}</version>
3838
<scope>provided</scope>
3939
</dependency>

pdf-toolkit-repo/src/main/java/org/alfresco/extension/pdftoolkit/service/PDFToolkitServiceImpl.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,25 @@ else if (keyType.equalsIgnoreCase(KEY_TYPE_PKCS12))
464464
ContentReader pdfReader = getReader(targetNodeRef);
465465
PdfReader reader = new PdfReader(pdfReader.getContentInputStream());
466466

467+
// If the page number is 0 because it couldn't be parsed or for
468+
// some other reason, set it to the first page, which is 1.
469+
// If the page number is negative, assume the intent is to "wrap".
470+
// For example, -1 would always be the last page.
471+
int numPages = reader.getNumberOfPages();
472+
if (pageNumber < 1 && pageNumber == 0) {
473+
pageNumber = 1; // use the first page
474+
} else {
475+
// page number is negative
476+
pageNumber = numPages + 1 + pageNumber;
477+
if (pageNumber <= 0) pageNumber = 1;
478+
}
479+
480+
// if the page number specified is more than the num of pages,
481+
// use the last page
482+
if (pageNumber > numPages) {
483+
pageNumber = numPages;
484+
}
485+
467486
// create temp dir to store file
468487
File alfTempDir = TempFileProvider.getTempDir();
469488
tempDir = new File(alfTempDir.getPath() + File.separatorChar + targetNodeRef.getId());
@@ -486,7 +505,7 @@ else if (keyType.equalsIgnoreCase(KEY_TYPE_PKCS12))
486505
// set reason for signature and location of signer
487506
sap.setReason(reason);
488507
sap.setLocation(location);
489-
508+
490509
if (visibility.equalsIgnoreCase(VISIBILITY_VISIBLE))
491510
{
492511
//create the signature rectangle using either the provided position or

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
| NOTE: Please Refer to Alfresco Support for access to Enterprise artifacts -->
2525
<alfresco.groupId>org.alfresco</alfresco.groupId>
2626
<!-- Defines the Alfresco version to work against. Allowed values are: org.alfresco | org.alfresco.enterprise -->
27-
<alfresco.version>5.0.2</alfresco.version>
27+
<alfresco.version>5.0.d</alfresco.version>
2828
<!-- This control the root logging level for all apps -->
2929
<app.log.root.level>WARN</app.log.root.level>
3030
<!-- This controls the default data location for dir.root -->

0 commit comments

Comments
 (0)