PackDocument Свойство (PdfDocumentCompressorCommand)
В этом разделе
Возвращает или задает значение, указывающее, должна ли команда упаковывать PDF документ после сжатия.
Синтаксис
Property Value
True - команда должна упаковать PDF документ после сжатия; false - команда НЕ должна упаковывать PDF документ после сжатия.
Значение по умолчанию: false.
Пример
Вот пример, показывающий, как сжать ресурсы PDF с помощью сжатия Flate и упаковать PDF документ:
''' <summary>
''' Packs the PDF document.
''' </summary>
''' <param name="inPdfFilename">The input PDF filename.</param>
''' <param name="outPdfFilename">The output PDF filename.</param>
Public Shared Sub PackDocument(inPdfFilename As String, outPdfFilename As String)
' create compressor with empty compression settings
Dim compressor As Vintasoft.Imaging.Pdf.Processing.PdfDocumentCompressorCommand = Vintasoft.Imaging.Pdf.Processing.PdfDocumentCompressorCommand.CreateEmptyCompressor()
' specify that compressor must use maximum Flate compression level (best compression)
compressor.FlateCompressionLevel = 9
' specify that compressor must recompress all resource that uses None, LZW, Flate compression using Flate compression
compressor.RecompressFlateCompression = True
compressor.UseFlateInsteadLzwCompression = True
compressor.UseFlateInsteadNoneCompression = True
' specify that compressor must remove incremental update info and unused objects
compressor.PackDocument = True
' if version of PDF document is lower than 1.7
If GetPdfDocumentVersion(inPdfFilename) < 17 Then
' set output format to PDF 1.7
compressor.DocumentPackFormat = Vintasoft.Imaging.Pdf.PdfFormat.Pdf_17
End If
' compress PDF document
compressor.Compress(inPdfFilename, outPdfFilename)
End Sub
''' <summary>
''' Returns the PDF document version.
''' </summary>
''' <param name="pdfFilename">The PDF filename.</param>
''' <returns>The version number in dual-digit format (10,11,12,13,14,15,16,17,20,...).</returns>
Private Shared Function GetPdfDocumentVersion(pdfFilename As String) As Integer
Using document As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename)
Return document.Format.VersionNumber
End Using
End Function
/// <summary>
/// Packs the PDF document.
/// </summary>
/// <param name="inPdfFilename">The input PDF filename.</param>
/// <param name="outPdfFilename">The output PDF filename.</param>
public static void PackDocument(string inPdfFilename, string outPdfFilename)
{
// create compressor with empty compression settings
Vintasoft.Imaging.Pdf.Processing.PdfDocumentCompressorCommand compressor =
Vintasoft.Imaging.Pdf.Processing.PdfDocumentCompressorCommand.CreateEmptyCompressor();
// specify that compressor must use maximum Flate compression level (best compression)
compressor.FlateCompressionLevel = 9;
// specify that compressor must recompress all resource that uses None, LZW, Flate compression using Flate compression
compressor.RecompressFlateCompression = true;
compressor.UseFlateInsteadLzwCompression = true;
compressor.UseFlateInsteadNoneCompression = true;
// specify that compressor must remove incremental update info and unused objects
compressor.PackDocument = true;
// if version of PDF document is lower than 1.7
if (GetPdfDocumentVersion(inPdfFilename) < 17)
{
// set output format to PDF 1.7
compressor.DocumentPackFormat = Vintasoft.Imaging.Pdf.PdfFormat.Pdf_17;
}
// compress PDF document
compressor.Compress(inPdfFilename, outPdfFilename);
}
/// <summary>
/// Returns the PDF document version.
/// </summary>
/// <param name="pdfFilename">The PDF filename.</param>
/// <returns>The version number in dual-digit format (10,11,12,13,14,15,16,17,20,...).</returns>
private static int GetPdfDocumentVersion(string pdfFilename)
{
using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename))
return document.Format.VersionNumber;
}
Требования
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Смотрите также