Skip to content

Commit 7db8ceb

Browse files
author
Nathan McMinn
committed
bug fixes for extract page action
1 parent 220c204 commit 7db8ceb

File tree

3 files changed

+94
-94
lines changed

3 files changed

+94
-94
lines changed

pdf-toolkit-repo/src/main/java/org/alfresco/extension/pdftoolkit/repo/action/executer/PDFExtractPageActionExecuter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ public class PDFExtractPageActionExecuter extends BasePDFActionExecuter {
2929
@Override
3030
protected void addParameterDefinitions(List<ParameterDefinition> paramList)
3131
{
32-
paramList.add(new ParameterDefinitionImpl(PDFToolkitConstants.PARAM_DESTINATION_FOLDER, DataTypeDefinition.NODE_REF, false, getParamDisplayLabel(PDFToolkitConstants.PARAM_DESTINATION_FOLDER)));
32+
paramList.add(new ParameterDefinitionImpl(PDFToolkitConstants.PARAM_DESTINATION_FOLDER, DataTypeDefinition.NODE_REF, true, getParamDisplayLabel(PDFToolkitConstants.PARAM_DESTINATION_FOLDER)));
3333
paramList.add(new ParameterDefinitionImpl(PDFToolkitConstants.PARAM_EXTRACT_PAGES, DataTypeDefinition.TEXT, true, getParamDisplayLabel(PDFToolkitConstants.PARAM_DELETE_PAGES)));
34-
paramList.add(new ParameterDefinitionImpl(PDFToolkitConstants.PARAM_DESTINATION_NAME, DataTypeDefinition.TEXT, false, getParamDisplayLabel(PDFToolkitConstants.PARAM_DESTINATION_NAME)));
34+
paramList.add(new ParameterDefinitionImpl(PDFToolkitConstants.PARAM_DESTINATION_NAME, DataTypeDefinition.TEXT, true, getParamDisplayLabel(PDFToolkitConstants.PARAM_DESTINATION_NAME)));
3535

3636
super.addParameterDefinitions(paramList);
3737
}
3838

3939
@Override
4040
protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
4141
{
42-
NodeRef result = pdfToolkitService.deletePagesFromPDF(actionedUponNodeRef, action.getParameterValues());
42+
NodeRef result = pdfToolkitService.extractPagesFromPDF(actionedUponNodeRef, action.getParameterValues());
4343
action.setParameterValue(PARAM_RESULT, result);
4444
}
4545
}

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

Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,96 +1125,6 @@ public NodeRef extractPagesFromPDF(NodeRef targetNodeRef, Map<String, Serializab
11251125
return subsetPDFDocument(targetNodeRef, params, pages, false);
11261126
}
11271127

1128-
private NodeRef subsetPDFDocument(NodeRef targetNodeRef, Map<String, Serializable> params, String pages, boolean delete)
1129-
{
1130-
InputStream is = null;
1131-
File tempDir = null;
1132-
ContentWriter writer = null;
1133-
PdfReader pdfReader = null;
1134-
NodeRef destinationNode = null;
1135-
1136-
try
1137-
{
1138-
ContentReader targetReader = getReader(targetNodeRef);
1139-
is = targetReader.getContentInputStream();
1140-
1141-
File alfTempDir = TempFileProvider.getTempDir();
1142-
tempDir = new File(alfTempDir.getPath() + File.separatorChar + targetNodeRef.getId());
1143-
tempDir.mkdir();
1144-
1145-
Boolean inplace = Boolean.valueOf(String.valueOf(params.get(PARAM_INPLACE)));
1146-
1147-
String fileName = getFilename(params, targetNodeRef);
1148-
1149-
File file = new File(tempDir, ffs.getFileInfo(targetNodeRef).getName());
1150-
1151-
pdfReader = new PdfReader(is);
1152-
Document doc = new Document(pdfReader.getPageSizeWithRotation(1));
1153-
PdfCopy copy = new PdfCopy(doc, new FileOutputStream(file));
1154-
doc.open();
1155-
1156-
List<Integer> pagelist = parsePageList(pages);
1157-
1158-
for (int pageNum = 1; pageNum <= pdfReader.getNumberOfPages(); pageNum++)
1159-
{
1160-
if (pagelist.contains(pageNum) && !delete) {
1161-
copy.addPage(copy.getImportedPage(pdfReader, pageNum));
1162-
}
1163-
}
1164-
doc.close();
1165-
1166-
destinationNode = createDestinationNode(fileName,
1167-
(NodeRef)params.get(PARAM_DESTINATION_FOLDER), targetNodeRef, inplace);
1168-
writer = cs.getWriter(destinationNode, ContentModel.PROP_CONTENT, true);
1169-
1170-
writer.setEncoding(targetReader.getEncoding());
1171-
writer.setMimetype(FILE_MIMETYPE);
1172-
1173-
// Put it in the repository
1174-
writer.putContent(file);
1175-
1176-
// Clean up
1177-
file.delete();
1178-
1179-
}
1180-
catch (IOException e)
1181-
{
1182-
throw new AlfrescoRuntimeException(e.getMessage(), e);
1183-
}
1184-
catch (DocumentException e)
1185-
{
1186-
throw new AlfrescoRuntimeException(e.getMessage(), e);
1187-
}
1188-
catch (Exception e)
1189-
{
1190-
throw new AlfrescoRuntimeException(e.getMessage(), e);
1191-
}
1192-
finally
1193-
{
1194-
if (pdfReader != null)
1195-
{
1196-
pdfReader.close();
1197-
}
1198-
if (is != null)
1199-
{
1200-
try
1201-
{
1202-
is.close();
1203-
}
1204-
catch (IOException e)
1205-
{
1206-
throw new AlfrescoRuntimeException(e.getMessage(), e);
1207-
}
1208-
}
1209-
1210-
if (tempDir != null)
1211-
{
1212-
tempDir.delete();
1213-
}
1214-
}
1215-
return destinationNode;
1216-
}
1217-
12181128
@Override
12191129
public NodeRef rotatePDF(NodeRef targetNodeRef, Map<String, Serializable> params)
12201130
{
@@ -1311,6 +1221,96 @@ public NodeRef rotatePDF(NodeRef targetNodeRef, Map<String, Serializable> params
13111221
return destinationNode;
13121222
}
13131223

1224+
private NodeRef subsetPDFDocument(NodeRef targetNodeRef, Map<String, Serializable> params, String pages, boolean delete)
1225+
{
1226+
InputStream is = null;
1227+
File tempDir = null;
1228+
ContentWriter writer = null;
1229+
PdfReader pdfReader = null;
1230+
NodeRef destinationNode = null;
1231+
1232+
try
1233+
{
1234+
ContentReader targetReader = getReader(targetNodeRef);
1235+
is = targetReader.getContentInputStream();
1236+
1237+
File alfTempDir = TempFileProvider.getTempDir();
1238+
tempDir = new File(alfTempDir.getPath() + File.separatorChar + targetNodeRef.getId());
1239+
tempDir.mkdir();
1240+
1241+
Boolean inplace = Boolean.valueOf(String.valueOf(params.get(PARAM_INPLACE)));
1242+
1243+
String fileName = getFilename(params, targetNodeRef);
1244+
1245+
File file = new File(tempDir, ffs.getFileInfo(targetNodeRef).getName());
1246+
1247+
pdfReader = new PdfReader(is);
1248+
Document doc = new Document(pdfReader.getPageSizeWithRotation(1));
1249+
PdfCopy copy = new PdfCopy(doc, new FileOutputStream(file));
1250+
doc.open();
1251+
1252+
List<Integer> pagelist = parsePageList(pages);
1253+
1254+
for (int pageNum = 1; pageNum <= pdfReader.getNumberOfPages(); pageNum++)
1255+
{
1256+
if (pagelist.contains(pageNum) && !delete) {
1257+
copy.addPage(copy.getImportedPage(pdfReader, pageNum));
1258+
}
1259+
}
1260+
doc.close();
1261+
1262+
destinationNode = createDestinationNode(fileName,
1263+
(NodeRef)params.get(PARAM_DESTINATION_FOLDER), targetNodeRef, inplace);
1264+
writer = cs.getWriter(destinationNode, ContentModel.PROP_CONTENT, true);
1265+
1266+
writer.setEncoding(targetReader.getEncoding());
1267+
writer.setMimetype(FILE_MIMETYPE);
1268+
1269+
// Put it in the repository
1270+
writer.putContent(file);
1271+
1272+
// Clean up
1273+
file.delete();
1274+
1275+
}
1276+
catch (IOException e)
1277+
{
1278+
throw new AlfrescoRuntimeException(e.getMessage(), e);
1279+
}
1280+
catch (DocumentException e)
1281+
{
1282+
throw new AlfrescoRuntimeException(e.getMessage(), e);
1283+
}
1284+
catch (Exception e)
1285+
{
1286+
throw new AlfrescoRuntimeException(e.getMessage(), e);
1287+
}
1288+
finally
1289+
{
1290+
if (pdfReader != null)
1291+
{
1292+
pdfReader.close();
1293+
}
1294+
if (is != null)
1295+
{
1296+
try
1297+
{
1298+
is.close();
1299+
}
1300+
catch (IOException e)
1301+
{
1302+
throw new AlfrescoRuntimeException(e.getMessage(), e);
1303+
}
1304+
}
1305+
1306+
if (tempDir != null)
1307+
{
1308+
tempDir.delete();
1309+
}
1310+
}
1311+
return destinationNode;
1312+
}
1313+
13141314
private ContentReader getReader(NodeRef nodeRef)
13151315
{
13161316
// first, make sure the node exists

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@
381381
<field-visibility>
382382
<show id="destination-name"/>
383383
<show id="destination-folder"/>
384-
<show id="delete-pages"/>
384+
<show id="extract-pages"/>
385385
</field-visibility>
386386
<appearance>
387387
</appearance>

0 commit comments

Comments
 (0)