Comments (9)
Can one assume that the content of the pages already fits on A4 and one merely has to increase or decrease the margins? Then it suffices to change media and crop boxes.
Or is it necessary to scale or even reflow the content?
from openpdf.
It should be necessary to scale. Such as this pdf:
dabaoz1.pdf
It's too big to see it all.
from openpdf.
You want to read an existing PDF and than recreate it with a "better" PageSize?
from openpdf.
from openpdf.
I think, if you want to scale and reflow the content, you can use OpenPDF to do this. But this functionality is quite high level to implement directly in the library. I don't even know how one could do this. The text must be extracted, and den inserted in the new document. And images too. A very complex task.
from openpdf.
I tried itext,It can move the content of the page, but AcroForms are lost,How to transfer AcroForms as is,Like the 6.pdf this file, how complete scale:
PdfReader pdfReader = new PdfReader(source);
Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(target));
doc.open();
PdfContentByte cb = writer.getDirectContent();
for(int i = 1; i <= pdfReader.getNumberOfPages(); i++){
PdfImportedPage page = writer.getImportedPage(pdfReader, i);
float width = page.getWidth();
float height = page.getHeight();
doc.setPageSize(new com.itextpdf.text.Rectangle(PageSize.A4.getHeight(), PageSize.A4.getWidth()));
doc.newPage();
float widthScale = getWidthScale(height);
float heightScale = getHeightScale(width);
cb.addTemplate(page, widthScale, 0, 0, heightScale,0,0);
}
doc.close();
from openpdf.
Copying the page with getImportedPage
actually only copies the static page content, annotations are lost. Thus, I would propose instead to change the media box and crop box of the page and prepend a scaling transformation to the page content stream.
Scaling (obviously) changes the coordinates of the content. Thus, all other objects that also contain coordinates on the page, need to be adjusted. This includes the annotations but also objects like link destinations.
from openpdf.
Is there any code example of specific implementation? thanks.
from openpdf.
I fear there is no such an example. This is a very specific problem, and scaling thinks around is not trivial. Such an example "could" be in pdf-toolbox
, but maybe it won't be a "simple" one.
from openpdf.
Related Issues (20)
- Release info on Github page should show 2.0.1 HOT 1
- How to implement the CSS into the HTML to be print to the PDF
- Automatic module cannot be used with jlink since version > 1.3.30 HOT 2
- Requesting support for Gradient Color Fill and Stroke HOT 5
- Replace existing text by matching pattern in PDF HOT 3
- Security risks, analysis and review of OpenPDF source code
- openpdf1.3.34version ,How can I set and get the width and height of a paragraph? If it's not possible directly, are there any alternative solutions? thanks
- How can I use OpenPDF to make the exported PDF support Khmer language versions? HOT 17
- [Build] `testFontStyleOfStyledFont` causes builds to fail with default Maven configuration on OSX 13.0 and higher HOT 5
- Can't fallback Font to Helvetica in PdfGraphics2D HOT 6
- iTextPdf 5.x class BarcodeQRCode missing in OpenPdf report? HOT 4
- Nested Lists in ColumnText not rendered correctly
- [bug] ERROR: Infinite table loop HOT 2
- PdfCopy cannot be used for writing HOT 1
- Streamlining Chunk Addition in ColumnText Without Storing All in JVM HOT 5
- Handling Row Content Splitting in PdfPTable.writeSelectedRows() HOT 3
- font can't display Complete when text length greater than pdf edit box length HOT 2
- Is OpenPDB library is fully supported on Android? HOT 2
- Support for Circular Shaped Images
- Does OpenPDF support multiThreadding ? HOT 1
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 openpdf.