</artifacts-to-build>
</component>
<component name="ChangeListManager">
- <list default="true" id="f146bc67-2578-4de3-9db2-94d2d43e9e83" name="Default" comment="wip #4097 @0.25" />
+ <list default="true" id="f146bc67-2578-4de3-9db2-94d2d43e9e83" name="Default" comment="wip #4097 @0.25">
+ <change beforePath="$PROJECT_DIR$/.idea/runConfigurations.xml" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/out/artifacts/fwstk_jar/fwstk.jar" beforeDir="false" afterPath="$PROJECT_DIR$/out/artifacts/fwstk_jar/fwstk.jar" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/src/com/fluidbook/fwstk/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/fluidbook/fwstk/Main.java" afterDir="false" />
+ </list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<dir>H:\Works\cubeExtranet\fluidbook\tools\fwstk\src</dir>
</dirStrings>
</component>
+ <component name="HighlightingSettingsPerFile">
+ <setting file="file://$PROJECT_DIR$/src/com/fluidbook/fwstk/layout/LayoutStripper.java" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/src/com/fluidbook/fwstk/layout/Separator.java" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/.idea/artifacts/fwstk_jar.xml" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/src/com/fluidbook/fwstk/Link.java" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/.idea/copyright/profiles_settings.xml" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/src/com/fluidbook/fwstk/layout/Space.java" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/MANIFEST.MF" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/src/com/fluidbook/fwstk/layout/Page.java" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/fwstk.iml" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/src/com/fluidbook/fwstk/Main.java" root0="FORCE_HIGHLIGHTING" />
+ </component>
+ <component name="MarkdownSettingsMigration">
+ <option name="stateVersion" value="1" />
+ </component>
<component name="PhpServers">
<servers />
</component>
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1542740619620" />
<property name="js-jscs-nodeInterpreter" value="C:\Program Files\nodejs\node.exe" />
<property name="js.eslint.eslintPackage" value="" />
- <property name="last_opened_file_path" value="$PROJECT_DIR$/lib/commons-text-1.8.jar!/" />
+ <property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path" value="C:/Program Files/nodejs/node" />
- <property name="project.structure.last.edited" value="Artifacts" />
+ <property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15193799" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="configurable.group.language" />
<option name="Make" enabled="true" />
</method>
</configuration>
+ <configuration default="true" type="ArquillianJUnit" factoryName="">
+ <option name="arquillianRunConfiguration">
+ <value>
+ <option name="containerStateName" value="" />
+ </value>
+ </option>
+ <option name="TEST_OBJECT" value="class" />
+ <option name="VM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="true" type="ArquillianTestNG" factoryName="">
+ <option name="arquillianRunConfiguration">
+ <value>
+ <option name="containerStateName" value="" />
+ </value>
+ </option>
+ <option name="TEST_OBJECT" value="CLASS" />
+ <option name="VM_PARAMETERS" />
+ <option name="WORKING_DIRECTORY" />
+ <properties />
+ <listeners />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
<configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
<option name="BCName" value="" />
<option name="IOSSimulatorSdkPath" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
- <configuration default="true" type="tests" factoryName="Nosetests">
- <module name="fwstk" />
- <option name="INTERPRETER_OPTIONS" value="" />
- <option name="PARENT_ENVS" value="true" />
- <option name="SDK_HOME" value="" />
- <option name="WORKING_DIRECTORY" value="" />
- <option name="IS_MODULE_SDK" value="false" />
- <option name="ADD_CONTENT_ROOTS" value="true" />
- <option name="ADD_SOURCE_ROOTS" value="true" />
- <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
- <option name="_new_regexPattern" value="""" />
- <option name="_new_additionalArguments" value="""" />
- <option name="_new_target" value=""."" />
- <option name="_new_targetType" value=""PATH"" />
- <method v="2" />
- </configuration>
- <configuration default="true" type="tests" factoryName="Unittests">
- <module name="fwstk" />
- <option name="INTERPRETER_OPTIONS" value="" />
- <option name="PARENT_ENVS" value="true" />
- <option name="SDK_HOME" value="" />
- <option name="WORKING_DIRECTORY" value="" />
- <option name="IS_MODULE_SDK" value="false" />
- <option name="ADD_CONTENT_ROOTS" value="true" />
- <option name="ADD_SOURCE_ROOTS" value="true" />
- <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
- <option name="_new_additionalArguments" value="""" />
- <option name="_new_target" value=""."" />
- <option name="_new_targetType" value=""PATH"" />
- <method v="2" />
- </configuration>
- <configuration default="true" type="tests" factoryName="py.test">
- <module name="fwstk" />
- <option name="INTERPRETER_OPTIONS" value="" />
- <option name="PARENT_ENVS" value="true" />
- <option name="SDK_HOME" value="" />
- <option name="WORKING_DIRECTORY" value="" />
- <option name="IS_MODULE_SDK" value="false" />
- <option name="ADD_CONTENT_ROOTS" value="true" />
- <option name="ADD_SOURCE_ROOTS" value="true" />
- <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
- <option name="_new_keywords" value="""" />
- <option name="_new_additionalArguments" value="""" />
- <option name="_new_target" value=""."" />
- <option name="_new_targetType" value=""PATH"" />
- <method v="2" />
- </configuration>
<configuration default="true" type="AndroidRunConfigurationType" factoryName="Android App">
<option name="DEPLOY" value="true" />
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
<option name="DEPLOY_AS_INSTANT" value="false" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
+ <option name="ALL_USERS" value="false" />
+ <option name="ALWAYS_INSTALL_WITH_PM" value="false" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<Java />
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
+ <option name="STARTUP_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
+ <option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
+ <option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
- <method v="2">
- <option name="Android.Gradle.BeforeRunTask" enabled="true" />
- </method>
+ <option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" />
+ <option name="SKIP_ACTIVITY_VALIDATION" value="false" />
+ <method v="2" />
</configuration>
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Instrumented Tests">
<option name="TESTING_TYPE" value="0" />
<Java />
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
+ <option name="STARTUP_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
+ <option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
+ <option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
</Profilers>
<method v="2">
<option name="Make" enabled="true" />
- <option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration name="extract layout" type="Application" factoryName="Application">
<option name="Make" enabled="true" />
</method>
</configuration>
- <configuration default="true" type="ArquillianJUnit" factoryName="">
- <option name="arquillianRunConfiguration">
- <value>
- <option name="containerStateName" value="" />
- </value>
- </option>
- <option name="TEST_OBJECT" value="class" />
- <option name="VM_PARAMETERS" />
- <option name="WORKING_DIRECTORY" />
- <method v="2">
- <option name="Make" enabled="true" />
- </method>
- </configuration>
- <configuration default="true" type="ArquillianTestNG" factoryName="">
- <option name="arquillianRunConfiguration">
- <value>
- <option name="containerStateName" value="" />
- </value>
- </option>
- <option name="TEST_OBJECT" value="CLASS" />
- <option name="VM_PARAMETERS" />
- <option name="WORKING_DIRECTORY" />
- <properties />
- <listeners />
- <method v="2">
- <option name="Make" enabled="true" />
- </method>
- </configuration>
<configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
<setting name="vmparams" value="" />
<setting name="cmdLine" value="run-app" />
<envs />
<method v="2" />
</configuration>
+ <configuration default="true" type="tests" factoryName="Nosetests">
+ <module name="fwstk" />
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
+ <option name="_new_regexPattern" value="""" />
+ <option name="_new_additionalArguments" value="""" />
+ <option name="_new_target" value=""."" />
+ <option name="_new_targetType" value=""PATH"" />
+ <method v="2" />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="Unittests">
+ <module name="fwstk" />
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
+ <option name="_new_additionalArguments" value="""" />
+ <option name="_new_target" value=""."" />
+ <option name="_new_targetType" value=""PATH"" />
+ <method v="2" />
+ </configuration>
+ <configuration default="true" type="tests" factoryName="py.test">
+ <module name="fwstk" />
+ <option name="INTERPRETER_OPTIONS" value="" />
+ <option name="PARENT_ENVS" value="true" />
+ <option name="SDK_HOME" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="IS_MODULE_SDK" value="false" />
+ <option name="ADD_CONTENT_ROOTS" value="true" />
+ <option name="ADD_SOURCE_ROOTS" value="true" />
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
+ <option name="_new_keywords" value="""" />
+ <option name="_new_parameters" value="""" />
+ <option name="_new_additionalArguments" value="""" />
+ <option name="_new_target" value=""."" />
+ <option name="_new_targetType" value=""PATH"" />
+ <method v="2" />
+ </configuration>
<list>
<item itemvalue="Application.extract links" />
<item itemvalue="Application.extract texts" />
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration" cleanupOnStartRun="true">
- <configuration>C:\Users\Vincent\AppData\Roaming\Subversion</configuration>
+ <configuration>C:\Users\vince\AppData\Roaming\Subversion</configuration>
<supportedVersion>125</supportedVersion>
<option name="runUnderTerminal" value="true" />
</component>
<option name="myMappingRoots">
<list>
<SvnCopyRootSimple>
- <option name="myVcsRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk" />
- <option name="myCopyRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk" />
+ <option name="myVcsRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk" />
+ <option name="myCopyRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk" />
</SvnCopyRootSimple>
<SvnCopyRootSimple>
- <option name="myVcsRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk" />
- <option name="myCopyRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk\src\com\fluidbook\fwstk" />
+ <option name="myVcsRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk" />
+ <option name="myCopyRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk\src\com\fluidbook\fwstk" />
</SvnCopyRootSimple>
</list>
</option>
<option name="myMoreRealMappingRoots">
<list>
<SvnCopyRootSimple>
- <option name="myVcsRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk" />
- <option name="myCopyRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk" />
+ <option name="myVcsRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk" />
+ <option name="myCopyRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk" />
</SvnCopyRootSimple>
<SvnCopyRootSimple>
- <option name="myVcsRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk" />
- <option name="myCopyRoot" value="H:\Works\cubeExtranet\fluidbook\tools\fwstk\src\com\fluidbook\fwstk" />
+ <option name="myVcsRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk" />
+ <option name="myCopyRoot" value="D:\Works\cubeExtranet\fluidbook\tools\fwstk\src\com\fluidbook\fwstk" />
</SvnCopyRootSimple>
</list>
</option>
<workItem from="1589879021642" duration="2421000" />
<workItem from="1595346736329" duration="5317000" />
<workItem from="1606322492928" duration="1489000" />
+ <workItem from="1631721143268" duration="984000" />
+ <workItem from="1648579261372" duration="1816000" />
</task>
<task id="LOCAL-00001" summary="wip #1111 @0.5">
<created>1487172253077</created>
<MESSAGE value="wip #4097 @0.25" />
<option name="LAST_COMMIT_MESSAGE" value="wip #4097 @0.25" />
</component>
- <component name="WindowStateProjectService">
- <state x="862" y="107" key="CommitChangelistDialog2" timestamp="1606325194911">
- <screen x="0" y="0" width="2560" height="1040" />
- </state>
- <state x="862" y="107" key="CommitChangelistDialog2/0.0.2560.1040@0.0.2560.1040" timestamp="1606325194911" />
- </component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
import java.util.Calendar;
import java.util.List;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringEscapeUtils;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
public class Main {
- private static String version = "0.94";
- private static String date = "20210915";
+ private static String version = "0.93";
+ private static String date = "20110904";
static int threads = 1;
static String input = "";
static Float linkOffsetX = 0.0f;
static Float linkOffsetY = 0.0f;
public static void main(String[] args) throws IOException,
- COSVisitorException, ClassNotFoundException, NullPointerException,
- InterruptedException {
+ COSVisitorException, ClassNotFoundException, NullPointerException,
+ InterruptedException {
if (args.length < 0) {
printUsage();
printVersion();
return;
} else if (args[i].trim().compareTo("-h") == 0
- || args[i].trim().compareTo("--help") == 0) {
+ || args[i].trim().compareTo("--help") == 0) {
printUsage();
return;
} else if (args[i].trim().compareTo("--trim") == 0) {
stripper.process(nextPage, i);
Page layout = stripper.getLayout();
BufferedWriter out
- = new BufferedWriter(
- new OutputStreamWriter(
- new FileOutputStream(layoutOutput.replace("%d", ""
- + i)), "UTF-8"));
+ = new BufferedWriter(
+ new OutputStreamWriter(
+ new FileOutputStream(layoutOutput.replace("%d", ""
+ + i)), "UTF-8"));
out.write(layout.asJSON());
out.close();
}
private static Boolean getInfos(PDDocument doc) throws IOException, COSVisitorException {
ArrayList<String> res = new ArrayList<>();
- res.add("Parsed by FWSTK: \t\t\t" + Main.version + " (" + Main.date + ")");
// General informations
String[] fields = {"Author", "Title", "CreationDate", "Creator",
- "Keywords", "ModificationDate", "Producer", "Subject",
- "Trapped", "Version"};
+ "Keywords", "ModificationDate", "Producer", "Subject",
+ "Trapped", "Version"};
PDDocumentInformation infos = doc.getDocumentInformation();
for (String k : fields) {
String v = infos.getCustomMetadataValue(k);
List<PDPage> list = doc.getDocumentCatalog().getAllPages();
int pages = list.size();
-
res.add("Pages:\t\t\t" + pages);
Boolean changes = false;
for (int i = 0; i < pages; i++) {
// Size
if (page.getRotation() != null
- && (page.getRotation() == 90 || page.getRotation() == 270)) {
+ && (page.getRotation() == 90 || page.getRotation() == 270)) {
res.add("Page " + numero + " size:\t\t"
- + Math.abs(cropBox.getHeight()) + " pts x "
- + Math.abs(cropBox.getWidth()) + " pts");
+ + Math.abs(cropBox.getHeight()) + " pts x "
+ + Math.abs(cropBox.getWidth()) + " pts");
// Boxes
res.add("Page " + numero + " CropBox:\t"
- + cropBox.getLowerLeftY() + "\t"
- + cropBox.getUpperRightX() + "\t"
- + cropBox.getUpperRightY() + "\t"
- + cropBox.getLowerLeftX() + "\t");
+ + cropBox.getLowerLeftY() + "\t"
+ + cropBox.getUpperRightX() + "\t"
+ + cropBox.getUpperRightY() + "\t"
+ + cropBox.getLowerLeftX() + "\t");
res.add("Page " + numero + " MediaBox:\t"
- + mediaBox.getLowerLeftY() + "\t"
- + mediaBox.getUpperRightX() + "\t"
- + mediaBox.getUpperRightY() + "\t"
- + mediaBox.getLowerLeftX() + "\t");
+ + mediaBox.getLowerLeftY() + "\t"
+ + mediaBox.getUpperRightX() + "\t"
+ + mediaBox.getUpperRightY() + "\t"
+ + mediaBox.getLowerLeftX() + "\t");
res.add("Page " + numero + " TrimBox:\t"
- + trimBox.getLowerLeftY() + "\t"
- + trimBox.getUpperRightX() + "\t"
- + trimBox.getUpperRightY() + "\t"
- + trimBox.getLowerLeftX() + "\t");
+ + trimBox.getLowerLeftY() + "\t"
+ + trimBox.getUpperRightX() + "\t"
+ + trimBox.getUpperRightY() + "\t"
+ + trimBox.getLowerLeftX() + "\t");
} else {
res.add("Page " + numero + " size:\t\t"
- + Math.abs(cropBox.getWidth()) + " pts x "
- + Math.abs(cropBox.getHeight()) + " pts");
+ + Math.abs(cropBox.getWidth()) + " pts x "
+ + Math.abs(cropBox.getHeight()) + " pts");
// Boxes
res.add("Page " + numero + " CropBox:\t"
- + cropBox.getLowerLeftX() + "\t"
- + cropBox.getUpperRightY() + "\t"
- + cropBox.getUpperRightX() + "\t"
- + cropBox.getLowerLeftY() + "\t");
+ + cropBox.getLowerLeftX() + "\t"
+ + cropBox.getUpperRightY() + "\t"
+ + cropBox.getUpperRightX() + "\t"
+ + cropBox.getLowerLeftY() + "\t");
res.add("Page " + numero + " MediaBox:\t"
- + mediaBox.getLowerLeftX() + "\t"
- + mediaBox.getUpperRightY() + "\t"
- + mediaBox.getUpperRightX() + "\t"
- + mediaBox.getLowerLeftY() + "\t");
+ + mediaBox.getLowerLeftX() + "\t"
+ + mediaBox.getUpperRightY() + "\t"
+ + mediaBox.getUpperRightX() + "\t"
+ + mediaBox.getLowerLeftY() + "\t");
res.add("Page " + numero + " TrimBox:\t"
- + trimBox.getLowerLeftX() + "\t"
- + trimBox.getUpperRightY() + "\t"
- + trimBox.getUpperRightX() + "\t"
- + trimBox.getLowerLeftY() + "\t");
+ + trimBox.getLowerLeftX() + "\t"
+ + trimBox.getUpperRightY() + "\t"
+ + trimBox.getUpperRightX() + "\t"
+ + trimBox.getLowerLeftY() + "\t");
}
}
}
for (String s : res) {
- System.out.println(StringUtils.trim(s));
+ System.out.println(s);
}
return changes;
}
}
res.add("NumberSectionsDelimiters:\t\t"
- + delimiters.substring(0, delimiters.length() - 1));
+ + delimiters.substring(0, delimiters.length() - 1));
}
private static void addBookmark(PDDocument doc, ArrayList<String> res,
}
current = current.getNextSibling();
-
}
}
private static void cutDocument(PDDocument doc, String input,
String output, String cutmode) throws COSVisitorException,
- IOException {
+ IOException {
System.out.println("Cut document of " + doc.getNumberOfPages()
- + " with mode " + cutmode);
+ + " with mode " + cutmode);
ArrayList<PDDocument> copies = duplicatePages(doc, input, cutmode);
cutPages(doc, cutmode);
newbox.move(decalage, 0f);
System.out.println("Set cropbox of page " + page + " from "
- + pdfPage.getCropBox() + " to " + newbox + " (offset : "
- + decalage + ")");
+ + pdfPage.getCropBox() + " to " + newbox + " (offset : "
+ + decalage + ")");
pdfPage.setCropBox(newbox);
pdfPage.setMediaBox(newbox);
continue;
}
System.out.println("Duplicate page " + page + " :: cursor is at "
- + cursor);
+ + cursor);
// Duplicate page
for (int j = 0; j < duplicateTime; j++) {
List<PDPage> l = copies.get(j).getDocumentCatalog().getAllPages();
private void extractTexts(PDDocument doc, String textsOutput, String method,
Integer[] pages, String ignoredSeparators, String input) throws IOException, ClassNotFoundException,
- NullPointerException, InterruptedException {
+ NullPointerException, InterruptedException {
long s = Calendar.getInstance().getTimeInMillis();
PDDocument d;
int totalThreads = Math.max(1,
- Math.min(Math.round(pages.length / 50.0f), Main.threads));
+ Math.min(Math.round(pages.length / 50.0f), Main.threads));
System.out.println("Total threads " + totalThreads);
}
System.out.println("Extraction des textes with " + method + " : "
- + ((Calendar.getInstance().getTimeInMillis() - s) / 1000)
- + "s");
+ + ((Calendar.getInstance().getTimeInMillis() - s) / 1000)
+ + "s");
}
public static void updateCropBox(PDDocument doc, String output,
String refbox, Integer[] pages, String defined) throws IOException,
- COSVisitorException {
+ COSVisitorException {
System.out.println("updateCropBox");
if (!"".equals(defined)) {
updateCropBoxDefined(doc, defined);
}
private static void updateCropBoxDefined(PDDocument doc, String defined)
- throws IOException, COSVisitorException {
+ throws IOException, COSVisitorException {
String[] e = defined.split("*");
for (int i = 0; i < e.length; i++) {
String[] e1 = e[i].split(",");
}
public static void saveLinks(String file, ArrayList<Link> listLinks)
- throws IOException {
+ throws IOException {
FileIO out = new FileIO(file);
out.open("w");
out.output.writeBytes(Link.header());
out.close();
}
- public static String getPageFromRemoteGoToAction(PDDocument doc, PDAction a) throws IOException{
- PDActionGoTo aa = (PDActionGoTo) a;
- if (null == a) {
- return "-1";
- }
- PDDestination d = aa.getDestination();
- return getPageFromDestination(doc, d);
- }
-
public static String getPageFromAction(PDDocument doc, PDAction a) throws IOException {
PDActionGoTo aa = (PDActionGoTo) a;
if (null == a) {
}
public static ArrayList<Link> extractLinksOfPage(PDDocument doc, int pageNumber, PDPage p)
- throws IOException {
+ throws IOException {
System.out.println(pageNumber);
ArrayList<Link> listLinks = new ArrayList<>();
Link myLink;
System.out.println(link.getRectangle().getHeight());
myLink.rect = link.getRectangle();
if (myLink.rect.getWidth() == 0.0
- || myLink.rect.getHeight() == 0.0) {
+ || myLink.rect.getHeight() == 0.0) {
System.out.println("Skip link :: surface == 0");
continue;
}
} else if (e[0].compareTo("tel") == 0) {
myLink.type = 24;
myLink.to = e[1];
- } else if (e[0].compareTo("tooltip") == 0) {
- myLink.type = 18;
- myLink.to = e[1];
} else {
myLink.type = 2;
}