LEADTOOLS Support
Document
Document SDK Questions
Document becomes 70 times bigger when loaded and saved using Raster Codecs
#1
Posted
:
Thursday, October 1, 2020 9:33:59 AM(UTC)
Groups: Registered
Posts: 60
Dear Team,
I have a 5MB PDF. I'm loading this using RasterCodecs and saving the same PDF to my disk. And if I notice the saved PDF, the size changes to 350MB.
Here is the code I'm using:
Code:
using (RasterCodecs codecs = new RasterCodecs())
{
codecs.Options.Load.AllPages = true;
using CodecsImageInfo info = codecs.GetInformation(file, true);
RasterImage image = codecs.Load(file);
codecs.Save(image, @$"{currentPath}\pdf2pdf.pdf", RasterImageFormat.RasPdfLzw, info.BitsPerPixel);
image.Dispose();
}
Please use the PDF from the following link
https://edutechlearners....ithms-3rd%20Edition.pdf. This is the PDF that I have used. Please assist on what I'm missing and how to reduce 1:70 ratio..
Thanks,
Abdul Rahman
#2
Posted
:
Friday, October 2, 2020 10:01:05 AM(UTC)
Groups: Registered, Tech Support, Administrators
Posts: 105
Was thanked: 3 time(s) in 3 post(s)
Hello Abdul,
I took a look at the source PDF file and notice that it is a vector PDF(searchable). Since you are using RasterCodecs, the output PDF file is going to be a raster PDF, which will increase the file size by a lot. The 5MB vector PDF converting to ~350MB raster PDF is expected behavior. Typically, the only way that you can reduce the file size would be the compression type, which you are already using the best for this file format, the physical size (height & width), or the bits per pixel (currently saving as 24 BPP). Is there a reason that you are wanting to rasterize the PDF file? What is your use-case?
Thanks
Matt Bresson
Developer Support Engineer
LEAD Technologies, Inc.
#3
Posted
:
Friday, October 2, 2020 10:06:18 AM(UTC)
Groups: Registered
Posts: 60
Dear Matt,
My use case is that I have PDF files stored in my file system. And annotations were stored separately in database. If the file has annotations then I need to rasterize the pdf to burn annotations. If not I just need to return the original file. So how to programmatically identify of the file is vector PDF and is there any other way to load/compress vector PDF? Also how to burn annotations if the PDF is a vector PDF?
Thanks,
Abdul Rahman
#4
Posted
:
Friday, October 2, 2020 1:59:59 PM(UTC)
Groups: Registered, Tech Support, Administrators
Posts: 105
Was thanked: 3 time(s) in 3 post(s)
Hello Abdul,
Unfortunately, there is no direct function to call that will tell you if your PDF file is searchable or not. However with that said I do have a pipeline that you can use that should indicate if the PDF is vector or not. First load your file as a PDFDocument.
https://www.leadtools.co.../dh/pdf/pdfdocument.htmlThen you will want to call the ParsePages method, but only call the ParsePages method on the first page.
https://www.leadtools.co...document-parsepages.htmlNow you will check the PDFDocumentPage.Objects collection.
https://www.leadtools.co...ocumentpage-objects.htmlIf the collection has more than 1 object, then typically this means it is a vector PDF. Collections with only one object and the ObjectType being Image, typically means it is a raster PDF. Note that is the PDFDocumentPage.Objects returns 1 object and it being an SVG object that means it could be a vector PDF.
https://www.leadtools.co...ocumentpage-objects.htmlThe best way to load your vector PDF and export the vector PDF with the best compression, you can use the DocumentConverter class, since the Document Converter uses Raster, SVG, and OCR engines to convert the data with the best possible output file format and compression.
https://www.leadtools.co...c/documentconverter.htmlRegarding burning annotations to your vector PDF, you will need to load your annotation files and their AnnContainers into an AnnContainer[] array.
https://www.leadtools.co...v20/dh/ac/anncodecs.htmlThen you will need to load your vector PDF as a LEADDocument. Then you will need to use the SetAnnotations method to set the AnnContainer[] array to the pages of the LEADDocument.
https://www.leadtools.co...ions-setannotations.htmlOnce you have done this, you can then "finalize" the document by running it through the Document Converters. Ensure that you set the AnnotationsMode to Embed, as this will embed the annotation containers to the vector PDF file.
https://www.leadtools.co...ata-annotationsmode.htmlIf you have any questions please let me know as I am aware I sent you a lot of information above and many documentation links.
Thanks
Matt Bresson
Developer Support Engineer
LEAD Technologies, Inc.
LEADTOOLS Support
Document
Document SDK Questions
Document becomes 70 times bigger when loaded and saved using Raster Codecs
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.