Bids for bytes
save resources efficiently
The 3-Heights™ PDF Optimizer optimizes PDF files to enable their use as high resolution files for printing or, with less resolution, for electronic document exchange or space-saving document archiving.
Compress
Resize your files according to your requirements
Optimize
Define color scheme and fonts for printing
Reduce
Scale document information down to necessary data
Easy configurability through optimization profiles:
Features and fine grained configuration for optimizing images
Features and fine grained configuration for optimizing fonts
Features for optimizing page content
Fine grained configuration for removal of:
Features and configuration on file level
Listing and extraction features
Input formats
Output formats
Web-based applications demand short response times. Potential customers lose interest when online publications and documents are slow to load. Same as poorly compressed PDF documents make emails unnecessarily large and can slow down communications or prevent the exchange of documents by email altogether. Small and linearized PDF documents reduce response times significantly and improve the outgoing mail processes significantly.
The priorities in the pre-press stage focus on correct reproduction and color quantity reduction during printing. Hence, all colors can be converted to CMYK for instance.
Archiving requirements can vary. For instance, alternative images may be required in one case but not in another. Redundant or unnecessary data should not be archived in either scenario. The 3‑Heights™ PDF Optimizer component offers selective optimization options to enable precisely these kinds of configuration variations.
Apply the optimization profile for archiving to reduce the file size while following the archive-typical imperative of preserving all information. Redundant objects are removed, embedded font files are merged and reduced to the subset of used glyphs. Resources are optimized and images are compressed depending on their type.
// Create the optimizer
using (Optimizer optimizer = new Optimizer())
{
// Choose the optimization profile for archiving
optimizer.Profile = PDFOptimizationProfile.eOptimizationProfileArchive;
// Open input file
if (!optimizer.Open(inputPath, ""))
throw new Exception(String.Format("Input file {0} cannot be opened. " +
"{1} (ErrorCode: 0x{2:x}).", inputPath, optimizer.ErrorMessage, optimizer.ErrorCode));
// Save output file
if (!optimizer.SaveAs(outputPath, "", "", PDFPermission.ePermNoEncryption))
throw new Exception(String.Format("Output file {0} cannot be created. " +
"{1} (ErrorCode: 0x{2:x}).", outputPath, optimizer.ErrorMessage, optimizer.ErrorCode));
// Close input file
if (!optimizer.Close())
throw new Exception(String.Format("Input file {0} cannot be closed. " +
"{1} (ErrorCode: 0x{2:x}).", inputPath, optimizer.ErrorMessage, optimizer.ErrorCode));
}
// Create the optimizer
optimizer = new PdfOptimize();
// Choose the optimization profile for archiving
optimizer.setProfile(PdfOptimize.OPTIMIZATIONPROFILE.eOptimizationProfileArchive);
// Open input file
if (!optimizer.open(inputPath, ""))
throw new IOException(String.format("Input file %s cannot be opened. %s (ErrorCode: 0x%08x).",
inputPath, optimizer.getErrorMessage(), optimizer.getErrorCode()));
// Save output file
if (!optimizer.saveAs(outputPath, "", "", NativeLibrary.PERMISSION.ePermNoEncryption))
throw new IOException(String.format("Output file %s cannot be created. %s (ErrorCode: 0x%08x).",
outputPath, optimizer.getErrorMessage(), optimizer.getErrorCode()));
// Close input file
if (!optimizer.close())
throw new IOException(String.format("Input file %s cannot be closed. %s (ErrorCode: 0x%08x).",
inputPath, optimizer.getErrorMessage(), optimizer.getErrorCode()));
// Create the optimizer
pOptimizer = PdfOptimizeCreateObject();
// Choose the optimization profile for archiving
PdfOptimizeSetProfile(pOptimizer, eOptimizationProfileArchive);
// Open input file
if (!PdfOptimizeOpen(pOptimizer, szInputPath, _T("")))
{
_tprintf(_T("Input file %s cannot be opened. %s (ErrorCode: 0x%08x).\n"), szInputPath,
PdfOptimizeGetErrorMessage(pOptimizer), PdfOptimizeGetErrorCode(pOptimizer));
iReturnValue = 1;
goto cleanup;
}
// Save output file
if (!PdfOptimizeSaveAs(pOptimizer, szOutputPath, _T(""), _T(""), ePermNoEncryption))
{
_tprintf(_T("Output file %s cannot be created. %s (ErrorCode: 0x%08x).\n"), szOutputPath,
PdfOptimizeGetErrorMessage(pOptimizer), PdfOptimizeGetErrorCode(pOptimizer));
iReturnValue = 1;
goto cleanup;
}
// Close input amd output files
if (!PdfOptimizeClose(pOptimizer))
{
_tprintf(_T("Input file %s cannot be closed. %s (ErrorCode: 0x%08x).\n"), szInputPath,
PdfOptimizeGetErrorMessage(pOptimizer), PdfOptimizeGetErrorCode(pOptimizer));
iReturnValue = 1;
goto cleanup;
}
☎ +41 43 411 44 51 ✉ pdfsales(at)pdf-tools.com
Quality assurance
Clean, lean and conform PDF documents without loss of quality and information.
Storage space
Relevant saving of storage space in the corresponding application area - especially for long-term digital archive storage.
Time
Efficient processing through the 3-Heights™ architecture. Fast document display, short download times and optimal searchability thanks to elimination of redundant data and application-oriented PDF optimization.
Processes have become faster and more reliable, and also enabled inbro to leverage their investment in cloud computing to be able to scale their business cheaply and effectively. Due to the implementation of PDF Optimization the permanent infrastructure could even be reduced by one managed machine.
File processing and file transmission without a loss in quality have been substantially improved through integration of the PDF Tools products in the document management workflow.
When it comes to printing then all colors in a PDF document are transformed to the native color space of the printing device. If, e.g. a text uses a black RGB color then it is transformed to an equivalent CMYK value which contains contributions from all four color channels...
PDF is more and more finding its way into mass printing applications. However, PDF spool files often ask too much from a print engine resulting in aborts or, even worse, incomplete prints which may not be noticed. What is special about PDF mass printing...
Archival processes therefore need to be kept under control, with a focus on optimization. And one area that can be improved is data optimization itself.
Get more information about the benefits of document optimization and compression.