繁体   English   中英

xfinium:如何生成具有不同方向的 PDF

[英]xfinium: How To generate PDF with differant orientations

我尝试创建一个带有页眉和页脚的 PdfFlowDocument。 纵向模式下从 1 到 3 的页面。 第 4 页是横向的,其余的又是纵向的。 按照我的代码片段:

        PdfFlowDocument flowDocument = new PdfFlowDocument();
        //flowDocument.HeadersFooters.EvenPagesHeader = docHeader;
        //flowDocument.HeadersFooters.EvenPagesFooter = docFooter;
        Xfinium.Pdf.Core.PdfFile sourceFile = new Core.PdfFile(File.OpenRead(""));
        Xfinium.Pdf.Graphics.PdfPageContent[] pageContents = sourceFile.ExtractPageContent(0, sourceFile.PageCount - 1);

        foreach (Xfinium.Pdf.Graphics.PdfPageContent content in pageContents)
        {
            //content can be Portrait or Landscape
            //How can I rotate the orientation?
            //How can I scale the page?
            var flowContent = new Xfinium.Pdf.FlowDocument.PdfFlowFormXObjectContent(content);
            flowDocument.AddContent(flowContent);
        }

您处理 PageCreated 事件并根据您的特定条件将页面旋转设置为横向 90。

PdfFlowDocument flowDocument = new PdfFlowDocument();
flowDocument.PageCreated += FlowDocument_PageCreated;

//flowDocument.HeadersFooters.EvenPagesHeader = docHeader;
//flowDocument.HeadersFooters.EvenPagesFooter = docFooter;
Xfinium.Pdf.Core.PdfFile sourceFile = new Core.PdfFile(File.OpenRead(""));
Xfinium.Pdf.Graphics.PdfPageContent[] pageContents = sourceFile.ExtractPageContent(0, sourceFile.PageCount - 1);

foreach (Xfinium.Pdf.Graphics.PdfPageContent content in pageContents)
{
    //content can be Portrait or Landscape
    //How can I rotate the orientation?
    //How can I scale the page?
    var flowContent = new Xfinium.Pdf.FlowDocument.PdfFlowFormXObjectContent(content);
    flowContent.SizeIsRelativeToAvailableSpace = true;
    flowContent.FormXObjectHeight = 100;
    flowContent.FormXObjectWidth = 100;

    flowDocument.AddContent(flowContent);
}

private void FlowDocument_PageCreated(object sender, PdfFlowPageCreatedEventArgs e)
{
    if (yourConditionHere)
    {
        e.Page.Rotation = 90;
    }
}

更新:您可以将flowContent.SizeIsRelativeToAvailableSpace属性设置为 true, flowContent.FormXObjectWidthflowContent.FormXObjectHeight属性设置为 100。这意味着内容对象将被缩放以占用所有可用空间 (100%)。 它还将处理白页问题。

免责声明:我为开发XFINIUM.PDF库的公司工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM