由于section.PageSetup.SectionStart = BreakType.BreakOdd / EvenPage,MigraDoc中的空白页

时间:2013-03-14 09:35:45

标签: c# sections migradoc

我正在从数据库生成价格指南 - 已经制定了许多所需的功能,但系统正在生成空白页面,我认为这是正确的,但我想知道是否有解决方法。< / p>

简单地说,我使用section.PageSetup.SectionStart来确保在右侧页面上开始新的部分。以这种方式跳过时的左侧页面是空白的。问题是前一部分的左侧页面有一个标题,新的部分有左侧页面的标题。标题包含漂亮的背景。

任何一个背景或其他都比空白页面更好,但空白页面是可以接受的 - 我只是在寻找完美:)

跳过的页面是否可以从任一部分获得标题/背景?

1 个答案:

答案 0 :(得分:0)

  

跳过的页面是否可以从任一部分获得标题/背景?

不,AFAIK你不能自动拥有它。

在我们的应用程序中,我们使用不同的添加背景的方式:每个部分都有一个标记,指示必须使用哪个背景。 我们在自己的循环中渲染页面,在渲染页面之前添加背景。

使用RenderPage查看Mix MigraDoc和PDFsharp示例:
http://www.pdfsharp.net/wiki/MixMigraDocAndPdfSharp-sample.ashx

以下是代码段:

// Check tags of all pages
for (int idx = 0; idx < pageCount; idx++)
{
  DocumentObject[] docObjects = docRenderer.GetDocumentObjectsFromPage(idx + 1);
  if (docObjects != null && docObjects.Length > 0)
  {
    Section section = docObjects[0].Section;
    DocumentSectionTag sectionTag = null;
    if (section != null)
      sectionTag = section.Tag as DocumentSectionTag;
    if (sectionTag != null && sectionTag.Name != sectionName)
    { 
      // Your code to handle the background information goes here

DocumentSectionTag是我们定义的用于传输所需信息的类。我们的页面背景是PDF文件中的页面,因此我们只需要页码。