gpt4 book ai didi

wpf - 打印带有页眉和页脚的 RTF - FlowDocument 或其他什么?

转载 作者:行者123 更新时间:2023-12-04 16:11:14 36 4
gpt4 key购买 nike

我一直在考虑将 RTF 导入到流程文件中,顽固地用于无人值守打印;经过大量的探索,使用 FlowDocument 似乎是正确的方法。我已经让 RTF 正常工作,但是当将 RTF 加载到 FlowDocument 中时,页脚消失了。

RTF 是在 Word 中生成的,当加载到写字板时,页脚是可见的,所以我只能假设我加载的文档错误,或者是默认分页器的问题,或者两者都有。

这是我到目前为止所拥有的,它加载文件并进行打印:

[STAThread]
public static int Main(string[] args)
{
var documentPath = @"C:\temp\Example.rtf";

var fileStream = File.Open(documentPath, FileMode.Open, FileAccess.Read, FileShare.Read);

// Load the RTF into the flow document
var flowDocument = new FlowDocument();
TextRange textRange = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
textRange.Load(fileStream, DataFormats.Rtf);
flowDocument.ColumnWidth = double.PositiveInfinity;
var t = new Thickness(72);
flowDocument.PagePadding = t; // Page margin

// Get printer
var queue = LocalPrintServer.GetDefaultPrintQueue();
var capa = queue.GetPrintCapabilities();

// Configure paginator
var paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator;
paginator.PageSize = new Size(capa.OrientedPageMediaWidth.Value, capa.OrientedPageMediaHeight.Value);

// ...and print.
var writer = System.Printing.PrintQueue.CreateXpsDocumentWriter(queue);
writer.Write(paginator);

return 0;
}

……除此之外,我不知所措。尚不清楚页脚是否根本没有加载(因此不是 FlowDocument 的一部分) - 我怀疑是这种情况,因为我们正在加载到一个 TextRange 中,该 TextRange 标记了主要 FlowDocument 内容的开始和结束;但我也怀疑我可能还需要一个自定义分页器。

是否有任何指向我缺少的文档的指针 - 谷歌搜索“RTF 页脚导入流程文档分页器”(和类似的)(到目前为止)没有显示任何相关结果。迄今为止我发现的最接近的是 this SO question ,但这不包括从 RTF 文件中获取页眉/页脚。

最佳答案

看看this MSDN blogpost他们做的几乎和你做的一样。使用自定义 DocumentPaginator 来缩放原始页面。我认为这应该可以解决问题。我很久以前也使用过它,页眉和页脚没有问题。

关于wpf - 打印带有页眉和页脚的 RTF - FlowDocument 或其他什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21903347/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com