我正在使用PDFsharp/MigraDoc将表格和图表写入PDF文件.到目前为止,这种方法很有效,但是当它将整个表格移动到文档中的下一页时,MigraDoc将始终分割我的表格(垂直).如何确保桌子保持整体?
MigraDoc.DocumentObjectModel.Tables的表类具有bool KeepTogether属性,但它似乎没有效果(设置为true或false).
有没有办法手动完成?有没有办法"测量"距离页面末端的距离并将其与表格高度进行比较?(或任何其他方式知道桌子是否会被拆分)
请注意,我是第一次使用PDFsharp/MigraDoc.如果有任何我应该知道的最佳实践,请告诉我.如果那里有一些很好的例子(我在PDFSharp的主页上看到了那些,但那是关于它的)我很想知道它们!
我正在尝试将多个PDF组合成一个PDF.PDF来自SSRS,来自我处理的一些LocalReports.我正在使用PDFSharp,因为它已经在整个项目中使用.但是,outputDocument.addPage(page)方法抛出InvalidOperationException("无法更改文档.")异常.我尝试了许多不同的方法,但我无法让它工作......
这是我的方法,其中已经检查了所有输入:
private static void saveFile(string fileName, params byte[][] bytes)
{
try
{
PdfDocument outputDocument = new PdfDocument();
for (int i = 0; i < bytes.Length; i++)
{
using (MemoryStream stream = new MemoryStream(bytes[i]))
{
PdfDocument inputDocument = PdfReader.Open(stream, PdfDocumentOpenMode.Import);
foreach (PdfPage page in inputDocument.Pages)
{
outputDocument.AddPage(page); //throws the exception !!!
}
}
}
outputDocument.Save(fileName);
}
catch (Exception ex)
{
throw new Exception("Erreur lors de l'enregistrement du fichier", ex);
}
}
Run Code Online (Sandbox Code Playgroud)
从我在网上看到的例子来看,这似乎是这样做的正确方法......我对合并我的PDF的其他建议持开放态度,但我宁愿不使用其他第三方库,比如ITextSharp,因为PDFSharp是已经在项目中使用过.
如果重要,我在Win7机器上使用VS2010 Pro.
编辑:从异常调用堆栈:
在PdfSharp.Pdf.PdfObject.set_Document(PdfDocument值)
在PdfSharp.Pdf.PdfObject.ImportClosure(PdfImportedObjectTable importedObjectTable,PdfDocument老板,PdfObject externalObject)
在PdfSharp.Pdf.PdfPages.CloneElement(PdfPage页, …
似乎没有找到很多这方面.我有一张PDF,我想在其上覆盖电子签名的图像.有关如何使用PDFSharp完成该任务的任何建议?
谢谢
是否有可能找到PDFsharp库的良好文档?
我在Google上搜索过,但我没有找到任何参考文档.
我不知道该怎么XGraphics.RotateAtTransform和XGraphics.TranslateTransform工作.
我使用PDFsharp(v1.32)合并多个PDF文件.我使用以下代码打开文档:
PdfDocument inputDocument = PdfReader.Open(pdfFilePath, PdfDocumentOpenMode.Import);
Run Code Online (Sandbox Code Playgroud)
在打开一个文档(PDF版本1.5(Acrobat 6.x))时,我收到一个例外:
PdfSharp.dll中发生未处理的"PdfSharp.Pdf.IO.PdfReaderException"类型的异常附加信息:无法处理iref流.PDFsharp的当前实现无法处理Acrobat 6中引入的此PDF功能.
我该怎么办?我需要合并所有文件,我不能跳过它.我试图找到解决方案,但发现没有回答,或者只是来自PDFsharp团队的非常老的反馈意见,他们将"修复它".
即使在阅读了这篇论坛帖子后,如何使用migradoc/pdfsharp创建一个弹出列表仍然令人困惑.我基本上想要显示这样的项目列表:
我已经在标准WPF控件中实现了一个报表,并且还实现了一个DocumentPaginator来获取这些控件并将它们转换为一个文档进行打印.
我还实现了一些代码,它们使用文档分页器将页面呈现为图像,并使用PDFSharp将它们写入PDF ,但是这不允许复制和粘贴,图像质量也有问题.
我已经尝试过使用GhostXPS实用程序并考虑通过保存到XPS文档然后使用GhostXPS将其转换为PDF来使用它,这很有希望,但是当前版本包含一个错误,该错误会从生成的PDF中复制数据无用...
所以我想我会在这里尝试找到一种有效的方法来做到这一点,有人可以建议一个好的方法来获取DocumentPaginator并直接将其保存为PDF,具有复制/粘贴功能或从XPS文档转换它到具有此功能的PDF?
谢谢,亚历克斯.
编辑 - PDFSharp修复:这里要求的是我为编译PDFSharp 1.31 XPS转换器的修复程序所做的工作:
1)我从这里下载了源代码:
2)我按照这篇文章中的说明:
XpsParser.ImageBrush.cs (ln 22, added): brush.Opacity = 1;
PdfContentWriter.cs (ln 526, changed): if (opacity <= 1)
Run Code Online (Sandbox Code Playgroud)
3)然后只需编译源代码,首先打开'PdfSharp-WPF.csproj'并构建它,然后打开'PdfSharp.Xps.csproj'并构建它,相关的库是'PdfSharp-WPF.dll'和'PdfSharp.Xps.dll'
注意,在尝试构建源代码时,您可能会收到一些错误,具体取决于您所针对的.NET版本,如果您只是阅读错误消息,这些错误很容易修复.
编辑(2):NJones创建了一篇博文,其中详细介绍了PdfSharp修复:在WPF中输出为PDF
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Drawing;
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
namespace Lightnings_Extractor
{
class PDF
{
public PDF()
{
// Create a new PDF document
PdfDocument document = new PdfDocument();
document.Info.Title = "Created with PDFsharp";
// Create an empty page
PdfPage page = document.AddPage();
// Get an XGraphics object for drawing
XGraphics gfx = XGraphics.FromPdfPage(page);
// Create a font
XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);
// Draw …Run Code Online (Sandbox Code Playgroud) 我刚刚开始一个需要我写入PDF文件的项目.经过一些谷歌搜索,我决定使用看似简单的PDFsharp,但是我有一些关于绘制表格和图表的问题.
PDFsharp是编写包含表格和图表的PDF文件的不错选择吗?如果不是,您能推荐更好的选择吗?如果是的话,我在哪里可以找到关于这个主题的一些好文献?一个教程会很好(不必是一个示例项目,只是我可以用来熟悉库及其类的东西).
谁能告诉我MigraDoc的全部意义?我只是瞥了一眼,看起来对我需要的东西很完美,不过我希望得到更多关于它的信息.