我正在利用ABCPDF通过EMF文档向当地印刷商印刷一份PDF文件。 我非常密切地以ABC PDF 样本“ABCPDFView”项目为基础。 我的申请在我的视窗7和视窗XP dev箱子上做了罚款,但当我搬入Windows 2003测试箱时,便衣(如《新罗马12号时报》)被完全错误(错误点,短处和棚户,几乎与新闻部一样是轻率错误的)。
请注意,我用超编主机打印司机将电离240x240。 我可以把驾驶员作为主子,因为如果我在印刷期间在当地保存EMF文件,就会发现同样的布局问题。 如果我向全国过渡政府或政府间森林论坛提交文件,那么,这只看上去了使用同一代码的所有我的服务器的罚款(投射机,取代......)。 最后,如果我利用ABCPDF的“意见”项目,在我的国防军随机盒子中人工添加这一文字,那么该文本也使EMF文件错误。 (同上,如果我用缩略语印刷PDF,案文仅作罚款)
最新消息:我给任何有这一问题的人留下了有益的观点。 我可以通过将RenderTextAsTextText设定为“0”来解决这一问题(见下文准则)。 这迫使ABCPDF使案文成为多功能,使问题消失。 虽然这大大提高了我EMF文件的规模,而且这些多功能文件在我最后的印刷文件中几乎不清。
没有人想到这个问题的根源?
private void DoPrintPage(object sender, PrintPageEventArgs e)
{
using (Graphics g = e.Graphics)
{
//... omitted code to determine the rect, used straight from ABC PDF sample
mDoc.Rendering.DotsPerInch = 240 ;
mDoc.Rendering.ColorSpace = "RGB";
mDoc.Rendering.BitsPerChannel = 8;
mDoc.SetInfo(0, "RenderTextAsText", "0");//the magic is right here
byte[] theData = mDoc.Rendering.GetData(".emf");
using (MemoryStream theStream = new MemoryStream(theData))
{
using (Metafile theEMF = new Metafile(theStream))
{
g.DrawImage(theEMF, theRect);
}
}
//... omitted code to move to the next page
}