Skip to content

Commit 3e9439a

Browse files
author
Nathan McMinn
committed
Supporting code and config for PDF/A convert
Added: action icon form config module definition action bean archive level constraint
1 parent c882787 commit 3e9439a

File tree

7 files changed

+101
-17
lines changed

7 files changed

+101
-17
lines changed

pdf-toolkit-repo/src/main/amp/config/alfresco/messages/pdf-toolkit.properties

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,7 @@ pdf-watermark.location-x.display-label=Watermark location x
158158
pdf-watermark.location-y.display-label=Watermark location y
159159
pdf-watermark.position.display-label=Position
160160
pdf-watermark.inplace.display-label=Execute in place
161-
pdf-watermark.page.display-label=Apply to page(s)
161+
pdf-watermark.page.display-label=Apply to page(s)
162+
163+
message.convert-to-archivable.success=Document converted to PDF/A
164+
message.convert-to-archivable.failure=Conversion to PDF/A failed

pdf-toolkit-repo/src/main/amp/config/alfresco/module/org.alfresco.extension.pdftoolkit/context/alfresco-pdf-toolkit-context.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,24 @@
164164
<property name="createNew" value="true"/>
165165
</bean>
166166

167+
<!-- pdf-convert-to-archivable -->
168+
<bean id="pdf-convert-to-archivable"
169+
class="org.alfresco.extension.pdftoolkit.repo.action.executer.PDFConvertToArchivableActionExecuter"
170+
parent="action-executer" depends-on="pdftoolkit-messages">
171+
<property name="serviceRegistry">
172+
<ref bean="ServiceRegistry"/>
173+
</property>
174+
<property name="applicableTypes">
175+
<list>
176+
<value>{http://www.alfresco.org/model/content/1.0}content</value>
177+
</list>
178+
</property>
179+
<property name="createNew" value="true"/>
180+
<property name="archiveLevelConstraint">
181+
<ref bean="pdfc-archivelevel"/>
182+
</property>
183+
</bean>
184+
167185
<!-- Page count web script -->
168186
<bean id="webscript.org.alfresco.extension.pdftoolkit.pagecount.get" class="org.alfresco.extension.pdftoolkit.webscripts.GetPageCount" parent="webscript">
169187
<property name="ServiceRegistry" ref="ServiceRegistry"/>

pdf-toolkit-repo/src/main/amp/config/alfresco/module/org.alfresco.extension.pdftoolkit/module-context.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,17 @@
157157
</property>
158158
</bean>
159159

160+
<!-- PDF/A level constants -->
161+
<bean id="pdfc-archivelevel" class="org.alfresco.extension.pdftoolkit.constraints.MapConstraint" parent="action-constraint">
162+
<property name="constraintMap">
163+
<map>
164+
<entry key="PDFX1A2001" value="1"/>
165+
<entry key="PDFA1A" value="3"/>
166+
<entry key="PDFA1B" value="4"/>
167+
</map>
168+
</property>
169+
</bean>
170+
160171
<!-- PDF Toolkit service, allows PDF actions to be used in Javascript API -->
161172
<bean id="pdftoolkit" parent="baseJavaScriptExtension"
162173
class="org.alfresco.extension.pdftoolkit.service.PDFToolkitService">
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package org.alfresco.extension.pdftoolkit.repo.action.executer;
22

3+
import java.util.HashMap;
34
import java.util.List;
5+
import java.util.Map;
46

7+
import net.sf.jooreports.converter.DocumentFamily;
8+
import net.sf.jooreports.converter.DocumentFormat;
9+
10+
import org.alfresco.extension.pdftoolkit.constraints.MapConstraint;
511
import org.alfresco.repo.action.ParameterDefinitionImpl;
612
import org.alfresco.service.cmr.action.Action;
713
import org.alfresco.service.cmr.action.ParameterDefinition;
@@ -10,36 +16,41 @@
1016
import org.apache.commons.logging.Log;
1117
import org.apache.commons.logging.LogFactory;
1218

13-
public class PDFConvertToArchivableActionExecuter extends BasePDFActionExecuter {
19+
public class PDFConvertToArchivableActionExecuter extends BasePDFActionExecuter
20+
{
1421

1522
/**
1623
* The logger
1724
*/
18-
private static Log logger = LogFactory.getLog(PDFConvertToArchivableActionExecuter.class);
25+
private static Log logger = LogFactory.getLog(PDFConvertToArchivableActionExecuter.class);
1926

2027
/**
2128
* Action constants
2229
*/
23-
public static final String NAME = "pdf-archive";
24-
public static final String PARAM_DESTINATION_FOLDER = "destination-folder";
25-
public static final String PARAM_DESTINATION_NAME = "destination-name";
26-
public static final String PARAM_ARCHIVE_LEVEL = "archive-level";
27-
30+
public static final String NAME = "pdf-archive";
31+
public static final String PARAM_DESTINATION_FOLDER = "destination-folder";
32+
public static final String PARAM_ARCHIVE_LEVEL = "archive-level";
2833

34+
/**
35+
* Constraints
36+
*/
37+
public static HashMap<String, String> archiveLevelConstraint = new HashMap<String, String>();
38+
2939
/**
3040
* Add parameter definitions
3141
*/
3242
@Override
3343
protected void addParameterDefinitions(List<ParameterDefinition> paramList)
3444
{
3545
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_FOLDER, DataTypeDefinition.NODE_REF, false, getParamDisplayLabel(PARAM_DESTINATION_FOLDER)));
36-
paramList.add(new ParameterDefinitionImpl(PARAM_DESTINATION_NAME, DataTypeDefinition.TEXT, false, getParamDisplayLabel(PARAM_DESTINATION_NAME)));
37-
46+
paramList.add(new ParameterDefinitionImpl(PARAM_ARCHIVE_LEVEL, DataTypeDefinition.INT, true, getParamDisplayLabel(PARAM_ARCHIVE_LEVEL), false, "pdfc-archivelevel"));
47+
3848
super.addParameterDefinitions(paramList);
3949
}
4050

4151
@Override
42-
protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
52+
protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
53+
{
4354

4455
// get a connection to OpenOffice via the usual Alfresco means
4556

@@ -49,4 +60,26 @@ protected void executeImpl(Action action, NodeRef actionedUponNodeRef) {
4960

5061
}
5162

63+
/**
64+
* Returns DocumentFormat of PDF/A
65+
*/
66+
/*private DocumentFormat toDocumentFormatPDFA(int level) {
67+
68+
DocumentFormat customPdfFormat = new DocumentFormat(PORTABEL_FORMAT, PDF_APP, "pdf");
69+
customPdfFormat.setExportFilter(DocumentFamily.TEXT, "writer_pdf_Export");
70+
final Map<String, Integer> pdfOptions = new HashMap<String, Integer>();
71+
pdfOptions.put("SelectPdfVersion", level);
72+
customPdfFormat.setExportOption(DocumentFamily.TEXT, "FilterData", pdfOptions);
73+
return customPdfFormat;
74+
}*/
75+
76+
/**
77+
* Setter for constraint bean
78+
*
79+
* @param encryptionLevelConstraint
80+
*/
81+
public void setArchiveLevelConstraint(MapConstraint mc)
82+
{
83+
archiveLevelConstraint.putAll(mc.getAllowableValues());
84+
}
5285
}

pdf-toolkit-share/src/main/amp/config/alfresco/web-extension/site-data/extensions/alfresco-pdf-toolkit-extension.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -268,25 +268,25 @@
268268
<!-- Share config elements for the doclib actions -->
269269
<config evaluator="string-compare" condition="DocLibActions">
270270
<actions>
271-
<action id="pdf-delete-page"
271+
<action id="pdf-convert-to-archivable"
272272
type="javascript"
273273
label="actions.pdftoolkit.deletePDFpages">
274274
<param name="function">onActionFormDialog</param>
275275
<param name="itemKind">pdf-action</param>
276-
<param name="itemId">pdf-pdfa-transform</param>
276+
<param name="itemId">pdf-convert-to-archivable</param>
277277
<param name="mode">create</param>
278278
<param name="destination">{node.nodeRef}</param>
279-
<param name="successMessage">message.pdf-delete-page.success</param>
280-
<param name="failureMessage">message.pdf-delete-page.failure</param>
279+
<param name="successMessage">message.convert-to-archivable.success</param>
280+
<param name="failureMessage">message.convert-to-archivable.failure</param>
281281
<evaluator>evaluator.pdftoolkit.doclib.action.pdfToolkitMimetype</evaluator>
282282
</action>
283283
</actions>
284284
<actionGroups>
285285
<actionGroup id="document-browse">
286-
<action index="508" id="pdf-delete-page"/>
286+
<action index="508" id="pdf-convert-to-archivable"/>
287287
</actionGroup>
288288
<actionGroup id="document-details">
289-
<action index="508" id="pdf-delete-page"/>
289+
<action index="508" id="pdf-convert-to-archivable"/>
290290
</actionGroup>
291291
</actionGroups>
292292
</config>
3.34 KB
Loading

pdf-toolkit-share/src/main/resources/META-INF/share-config-custom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,25 @@
528528
</forms>
529529
</config>
530530

531+
<config evaluator="string-compare" condition="pdf-encryption">
532+
<forms>
533+
<form>
534+
<field-visibility>
535+
<show id="inplace"/>
536+
<show id="destination-folder"/>
537+
<show id="archive-level"/>
538+
</field-visibility>
539+
<appearance>
540+
<field id="inplace">
541+
<control template="/org/alfresco/pdftoolkit/components/form/controls/hidingCheckbox.ftl">
542+
<control-param name="hideProperties">assoc_destination-folder</control-param>
543+
</control>
544+
</field>
545+
</appearance>
546+
</form>
547+
</forms>
548+
</config>
549+
531550
<config evaluator="string-compare" condition="DocLibCustom">
532551
<dependencies>
533552
<js src="pdftoolkit/components/doclib/pdftoolkit-doclib-actions.js" />

0 commit comments

Comments
 (0)