"PRC (Product Representation Compact) is a file format that can be used to embed 3D data in a PDF file" according to Wikipedia. prc is a Rust language implementation of the file format.
- code generator based on 2014 PRC standard
- Schema evaluator
- Huffman decoding
- parsing compressed arrays
- parsing PRC_TYPE_TESS_3D_Compressed: vertex and triangle interpretation (https://patents.google.com/patent/US8207965B2/en, pdf-association/pdf-issues#727)
- parsing PRC_TYPE_TESS_3D_Compressed: normals (pdf-association/pdf-issues#436, pdf-association/pdf-issues#540)
- parsing PRC_TYPE_TESS_3D_Compressed: color data
- parsing compressed NURBS
- parsing AnaFaceTrimLoop
- parsing VertexColors
- parsing PRC_TYPE_SURF_Blend03
- C API for parsing/reading
- B-rep tessellation
- PRC write/output
Build the CMake project under src/tools/prc2json. Afterwards run prc2json input.prc | jq > output.json.
Test data is currently very scarce, many parts (structures) of the PRC standard are not yet found in existing test data. If you can, please submit new data (sample 3D PDFs) to increase the coverage of the library. The script extract3d.sh may be used to find and dump PRC and U3D streams from a PDF file.
prc is licensed under the MIT License - see the LICENSE file for details.
For commercial support, reach out to the main author.
The PRC file format documentation is quite scattered, incomplete, sometimes contradictory and does not properly detail file version differences.
- SC2N570-PRC-WD 2009 draft standard
- ISO 14739-1:2014 2014 standard and identified issues
- Acrobat 9 PRC Format Specification
- Acrobat SDK 9 for Mac Win
- Acrobat SDK 10 for Mac Win
- Acrobat SDK 11 for Mac Win
- US pat. 8.207,965 on compressed tesselation
- Acrobat Pro Extended 9