Skip to content

Commit

Permalink
Merge pull request #94 from LibrePDF/dss-openpdf
Browse files Browse the repository at this point in the history
 Add includeFileID and overrideFileId properties to PdfStampler.
  • Loading branch information
andreasrosdal committed Aug 22, 2018
2 parents 3f6ccac + e629e16 commit f42d7e5
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 3 deletions.
19 changes: 19 additions & 0 deletions openpdf/src/main/java/com/lowagie/text/pdf/PdfStamper.java
Original file line number Diff line number Diff line change
Expand Up @@ -760,4 +760,23 @@ public static PdfStamper createSignature(PdfReader reader, OutputStream os, char
public Map getPdfLayers() {
return stamper.getPdfLayers();
}

public void setIncludeFileID(boolean includeFileID) {
this.stamper.setIncludeFileID(includeFileID);
}

public boolean isIncludeFileID() {
return stamper.isIncludeFileID();
}

public void setOverrideFileId(PdfObject overrideFileId) {
this.stamper.setOverrideFileId(overrideFileId);
}

public PdfObject getOverrideFileId() {
return stamper.getOverrideFileId();
}



}
30 changes: 27 additions & 3 deletions openpdf/src/main/java/com/lowagie/text/pdf/PdfStamperImp.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ class PdfStamperImp extends PdfWriter {
protected IntHashtable marked;
protected int initialXrefSize;
protected PdfAction openAction;
private boolean includeFileID = true;
private PdfObject overrideFileId = null;

/** Creates new PdfStamperImp.
* @param reader the read PDF
Expand Down Expand Up @@ -319,10 +321,16 @@ else if (producer.indexOf(Document.getProduct()) == -1) {
PdfIndirectObject encryptionObject = addToBody(crypto.getEncryptionDictionary(), false);
encryption = encryptionObject.getIndirectReference();
}
fileID = crypto.getFileID();
if (includeFileID) fileID = crypto.getFileID();
}
else if (includeFileID) {
if (overrideFileId != null) {
fileID = overrideFileId;
} else {
fileID = PdfEncryption.createInfoId(PdfEncryption.createDocumentId());
}

}
else
fileID = PdfEncryption.createInfoId(PdfEncryption.createDocumentId());
PRIndirectReference iRoot = (PRIndirectReference)reader.trailer.get(PdfName.ROOT);
PdfIndirectReference root = new PdfIndirectReference(0, getNewObjectNumber(reader, iRoot.getNumber(), 0));
PdfIndirectReference info = null;
Expand Down Expand Up @@ -1690,4 +1698,20 @@ static class PageStamp {
pageResources.setOriginalResources(resources, stamper.namePtr);
}
}

public boolean isIncludeFileID() {
return includeFileID;
}

public void setIncludeFileID(boolean includeFileID) {
this.includeFileID = includeFileID;
}

public PdfObject getOverrideFileId() {
return overrideFileId;
}

public void setOverrideFileId(PdfObject overrideFileId) {
this.overrideFileId = overrideFileId;
}
}

0 comments on commit f42d7e5

Please sign in to comment.