8 runnable, self-contained com.pd4ml.pdf.xfdf use-case examples - export/import round trips,
the update-if-exists switch, form fields, type/ID filtering, and post-import encryption/optimization.
1. Running the examples
All examples live under src/test/java/com/pd4ml/pdf/xfdf/example/usecases/ (test scope
- not shipped in the distributed jar) and are ordinary runnable classes with a
main(String[] args). Easiest from an IDE: right-click the class, Run. From the command
line:
$ mvn test-compile
$ mvn dependency:build-classpath -Dmdep.outputFile=cp.txt
$ java -cp "target/test-classes;target/classes;$(cat cp.txt)" \
com.pd4ml.pdf.xfdf.example.usecases.<ClassName> <args...>
Every example builds its own small sample PDF(s) in memory (via
com.pd4ml.examples.support.SamplePdf, no external fixture files needed) and was
actually run end-to-end.
2. Example index
| # | Class | Demonstrates |
|---|---|---|
| 01 | Ex01_BasicExportAndImport | The minimal round trip: export a PDF's annotations to XFDF, then import that XFDF into a different PDF. Start here. |
| 02 | Ex02_InspectingTheParsedModel | XfdfReader.read(...) turns XFDF bytes into a plain XfdfDocument/XfdfAnnotation model you can inspect directly. |
| 03 | Ex03_UpdateIfExistsSwitch | Options.updateIfExists(boolean) - update a matching annotation in place vs. always adding a new one. |
| 04 | Ex04_FormFieldValues | Form field values travel through <fields>, only ever updating an existing AcroForm field - including checkbox /AS sync. |
| 05 | Ex05_TypeAndIdFiltering | Options.types(String)/ids(String) restrict export or import to a comma-separated subset. |
| 06 | Ex06_EncryptedSourceExport | Exporting from an encrypted PDF - transparent decryption via the password overload. |
| 07 | Ex07_PostImportOptimizeAndEncrypt | Options.optimizeOutput(boolean) + encryptOutput(...) chained after an import. |
| 08 | Ex08_ErrorHandlingPatterns | Every XfdfException failure mode and how to recognize it. |
For a ready-made command-line tool covering the same ground without writing any code, see the
pd4xfdfcli Reference and run
com.pd4ml.pdf.xfdf.cli.Pd4XfdfCli.
3. See also
- PD4ML XFDF Manual - the programmer's manual behind these examples
- pd4xfdfcli Reference - command-line reference for
com.pd4ml.pdf.xfdf.cli.Pd4XfdfCli - PD4ML COS API Manual / PD4ML COS Examples - standalone
com.pd4ml.pdf.cosfoundation this package is built on - pd4coscli Reference - command-line reference for
com.pd4ml.pdf.cos.cli.CosCli - PD4ML PDF Merge Manual / PD4ML Merge Examples - combining page ranges from several PDFs, a natural companion to annotation import/export
- PD4ML PDF Optimizer Manual -
Options.optimizeOutput(boolean)delegates here - PD4ML Signing Manual -
com.pd4ml.pdf.sign, which shares the samecom.pd4ml.pdf.cosfoundation and, viacom.pd4ml.pdf.cos.security, the samePdfEncryptorthis package's output encryption uses
