itextsharp新手。我不确定这是否是正确的论坛;这是因为我将在下面描述的项目中涉及三个程序:Silverlight 4,Amyuni的Silverlight PDF和itextsharp 4.除此之外,我正在使用我在项目中获得的代码网络将silverlight inkpresenter翻译成图像。这包括调用png编码器类的“editableimage”类。正如你在我急于开始工作时所看到的那样,我发现了许多工具,其中任何一个都可能导致我的问题(将其翻译为意味着我错误地使用了一个或多个工具: - )。
我感觉这是我使用itextsharp保存pdf的方式,虽然我发现pngencoder可能与它有关。至少我可以看到它不压缩它创建的png。
我有一个项目,我正在使用Amyuni的Pdf为silverlight从文件加载pdf到silverlight inkpresenter。作为概念证明,我使用Amyuni将pdf的第一页带入inpresenter,使用writeablebitmap创建了一个位图,并将其传递给上面提到的editableimage对象和png编码器。然后将png流式传输到httphandler,其中itextsharp将其转换为pdf。此pdf保存在数据库表中。我确保pdf的矩形与可写位图和editableimage创建的位图具有相同的尺寸。
然后我使用Amyuni Pdf for Silverlight将保存在数据库中的pdf读回到inkpresenter。由于某种原因,加载的pdf大于pdf文件中的原始页面。字体较大,较少的pdf适合同一个inkpresenter。我不确定,但似乎保存到数据库的pdf页面的尺寸大于它们从文件加载到同一个inkpresenter时的尺寸。我怀疑在使用itext sharp保存pdf页面时我犯了一些错误。我在stackoverflow中看过这里的帖子,其他人经历过同样的事情。我已经尽力通过谷歌搜索来解决这个问题,但不幸的是,考虑到我正在使用的所有不同类型的软件,很难解决这个问题。
Any advice would be appreciated.
Fig000
答案 0 :(得分:1)
如果您已经在使用Amyuni PDF Creator在Silverlight中显示PDF文件,您还可以使用它在服务器端使用png图像生成PDF文件。
代码如下所示:
PDFCreactiveX pdfdoc = new PDFCreactiveXClass();
pdfdoc.CreateObject(ObjectTypeConstants.acObjectTypePicture, "Picture1");
pdfdoc.set_ObjectAttribute("Picture1", "FileName", "C:\\mytemppicture.png");
pdfdoc.set_ObjectAttribute("Picture1", "Left", 0);
pdfdoc.set_ObjectAttribute("Picture1", "Top", 0);
pdfdoc.Save("c:\\mytemppdf.pdf", FileSaveOptionConstants.acFileSaveDefault);