@@ -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
0 commit comments