VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
В этом разделе
    Кодеки: Как настроить параметры макета DOCX-документа?
    В этом разделе
    SDK позволяет указать параметры макета (размер страницы, отступы страницы, масштаб содержимого) DOCX-документа. Настройки макета страницы можно указать для всех страниц, четных и/или нечетных страниц, страниц указанных индексами.

    Вот C#/VB.NET код, который демонстрирует, как установить параметры макета DOCX-документа:
    /// <summary>
    /// Class shows how to convert DOCX document to PDF document using specified layout settings.
    /// </summary>
    public class DocxConverter
    {
    
        /// <summary>
        /// Converts DOCX document to PDF document using specified layout settings.
        /// </summary>
        public static void ConvertDocxToPdf(string docxFileName, string pdfFileName)
        {
            // create image collection
            using (Vintasoft.Imaging.ImageCollection imageCollection = new Vintasoft.Imaging.ImageCollection())
            {
                // subscribe to the ImageCollection.LayoutSettingsRequest event
                imageCollection.LayoutSettingsRequest += ImageCollection_LayoutSettingsRequest;
    
                // add XLSX document to the image collection
                imageCollection.Add(docxFileName);
    
                // create PDF encoder that will create new PDF file
                using (Vintasoft.Imaging.Codecs.Encoders.PdfEncoder pdfEncoder =
                    new Vintasoft.Imaging.Codecs.Encoders.PdfEncoder(true))
                {
                    // save images of image collection to PDF document using PDF encoder
                    imageCollection.SaveSync(pdfFileName, pdfEncoder);
                }
    
                // dispose images
                imageCollection.ClearAndDisposeItems();
            }
        }
    
        /// <summary>
        /// Handles the LayoutSettingsRequest event of the ImageCollection object.
        /// </summary>
        private static void ImageCollection_LayoutSettingsRequest(object sender, Vintasoft.Imaging.DocumentLayoutSettingsRequestEventArgs e)
        {
            // if DOCX codec is used
            if (e.Codec.Name == "Docx")
            {
                // change layout settings of DOCX document
    
                Vintasoft.Imaging.Codecs.Decoders.DocumentLayoutSettings layoutSettings = e.LayoutSettings;
    
                // page size - A4
                Vintasoft.Imaging.ImageSize pageSize = Vintasoft.Imaging.ImageSize.FromPaperKind(Vintasoft.Imaging.PaperSizeKind.A4);
    
                // book stitch size - 20mm
                float stitchSize = (float)Vintasoft.Imaging.Utils.UnitOfMeasureConverter.ConvertToDeviceIndependentPixels(20, Vintasoft.Imaging.UnitOfMeasure.Millimeters);
    
                // set even page size to A4, padding from right - 20mm
                layoutSettings.EvenPageLayoutSettings = new Vintasoft.Imaging.Codecs.Decoders.PageLayoutSettings(pageSize);
                layoutSettings.EvenPageLayoutSettings.PagePadding = new Vintasoft.Imaging.PaddingF(0, 0, stitchSize, 0);
    
                // set odd page size to A4, padding from left - 20mm
                layoutSettings.OddPageLayoutSettings = new Vintasoft.Imaging.Codecs.Decoders.PageLayoutSettings(pageSize);
                layoutSettings.OddPageLayoutSettings.PagePadding = new Vintasoft.Imaging.PaddingF(stitchSize, 0, 0, 0);
            }
        }
    }
    
    ''' <summary>
    ''' Class shows how to convert DOCX document to PDF document using specified layout settings.
    ''' </summary>
    Public Class DocxConverter
    
        ''' <summary>
        ''' Converts DOCX document to PDF document using specified layout settings.
        ''' </summary>
        Public Shared Sub ConvertDocxToPdf(docxFileName As String, pdfFileName As String)
            ' create image collection
            Using imageCollection As New Vintasoft.Imaging.ImageCollection()
                ' subscribe to the ImageCollection.LayoutSettingsRequest event
                AddHandler imageCollection.LayoutSettingsRequest, AddressOf ImageCollection_LayoutSettingsRequest
    
                ' add XLSX document to the image collection
                imageCollection.Add(docxFileName)
    
                ' create PDF encoder that will create new PDF file
                Using pdfEncoder As New Vintasoft.Imaging.Codecs.Encoders.PdfEncoder(True)
                    ' save images of image collection to PDF document using PDF encoder
                    imageCollection.SaveSync(pdfFileName, pdfEncoder)
                End Using
    
                ' dispose images
                imageCollection.ClearAndDisposeItems()
            End Using
        End Sub
    
        ''' <summary>
        ''' Handles the LayoutSettingsRequest event of the ImageCollection object.
        ''' </summary>
        Private Shared Sub ImageCollection_LayoutSettingsRequest(sender As Object, e As Vintasoft.Imaging.DocumentLayoutSettingsRequestEventArgs)
            ' if DOCX codec is used
            If e.Codec.Name = "Docx" Then
                ' change layout settings of DOCX document
    
                Dim layoutSettings As Vintasoft.Imaging.Codecs.Decoders.DocumentLayoutSettings = e.LayoutSettings
    
                ' page size - A4
                Dim pageSize As Vintasoft.Imaging.ImageSize = Vintasoft.Imaging.ImageSize.FromPaperKind(Vintasoft.Imaging.PaperSizeKind.A4)
    
                ' book stitch size - 20mm
                Dim stitchSize As Single = CSng(Vintasoft.Imaging.Utils.UnitOfMeasureConverter.ConvertToDeviceIndependentPixels(20, Vintasoft.Imaging.UnitOfMeasure.Millimeters))
    
                ' set even page size to A4, padding from right - 20mm
                layoutSettings.EvenPageLayoutSettings = New Vintasoft.Imaging.Codecs.Decoders.PageLayoutSettings(pageSize)
                layoutSettings.EvenPageLayoutSettings.PagePadding = New Vintasoft.Imaging.PaddingF(0, 0, stitchSize, 0)
    
                ' set odd page size to A4, padding from left - 20mm
                layoutSettings.OddPageLayoutSettings = New Vintasoft.Imaging.Codecs.Decoders.PageLayoutSettings(pageSize)
                layoutSettings.OddPageLayoutSettings.PagePadding = New Vintasoft.Imaging.PaddingF(stitchSize, 0, 0, 0)
            End If
        End Sub
    End Class