Comments (6)
Don't do this.
Just leave the config nil unless you have a meaningful one - just follow along the tests in the codebase.
from pdfcpu.
This does not always work: for example ReadValidateAndOptimize()
function panics on nil
configuration.
And anyways, what's the idea behid conf.Cmd
? Is this a leftover from command-line tool and as user of API I should not touch it at all?
from pdfcpu.
Another example: ReadValidateAndOptimize
calls OptimizeContext
only if conf.Cmd == model.OPTIMIZE
or conf.Optimize == true
. Which is strange - if I call this function I expect it to Validate and Optimize (as name says) without extra steps.
Futher down the call stack OptimizeXRefTable
calls optimizeResourceDicts
only if conf.Cmd == model.OPTIMIZE
(setting conf.Optimize == true
would do nothing).
Could you please explain why configuration is structured in this way?
Is there a historical or technical reason for this separation?
I am aiming to ensure that I'm using the library correctly and that I understand the design decisions that could affect the way I implement PDF processing capabilities in my application.
Thank you for your time and assistance.
from pdfcpu.
Optimization has turned into an optional feature in one of the latest commits as requested, with the exception of the optimize
command.
These latest configuration changes are yet to be officially released and will be documented properly.
Always make sure you use the latest commit.
from pdfcpu.
If you are using the api you have a choice of commands for processing your PDF.
All commands will provide a corresponding default configuration internally based on config.yml in your pdfcpu config
.
This means in general all you have to do is pass nil
for the config parameter.
Of course you are free to pass your own configuration.
The recommended way for doing so is smth like:
conf := model.NewDefaultConfiguration()
conf.Eol = types.EolCRLF
You will never ever have to do something like conf := &model.Configuration{}
from pdfcpu.
I added some inline documentation for ReadValidateAndOptimize.
Please check back for the next release, which will include updated docs for the pdfcpu configuration.
from pdfcpu.
Related Issues (20)
- AddWatermark returns error on PDF with empty page HOT 6
- Latest wasm build doesn't work with latest wasm_execs HOT 3
- About the version of xRefTable HOT 3
- US Letter has incorrect size HOT 2
- `pdfcpu images list` command can not get output HOT 1
- Api: merge pdf error HOT 2
- import images default command and help info mistake HOT 2
- xRefTable failed: pdfcpu: can't find last xref section HOT 10
- runtime error: index out of range [0] with length 0 HOT 8
- pdfcpu info does not show author attribute
- Invalid reference in stream "Length" causes endless parsing
- Disable centered content when resize page. HOT 1
- Dereference error with a particular (corrupt?) PDF HOT 1
- api: Form fill fails with forms produced with Adobe Acrobat HOT 5
- Bookmark export does not list/export single first-level bookmark HOT 3
- api.PageCount Fails on PDF/A Compliant PDFs HOT 2
- Transparency level when using API HOT 1
- addPageWatermark: ctx.PageDict(pageNr, consolidateRes) returns no error, but nil dictionary HOT 1
- Stack overflow when optimize pdf using API HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pdfcpu.