如何用C#打印西里尔文PDF?文字丢失

时间:2012-12-03 14:38:59

标签: c# printing itextsharp

我使用iTextSharp在我的程序中创建文档。文档中的所有文本都是俄语,我使用Tahoma字体:

    private static void PrepareFonts()
    {
        _baseTahoma = BaseFont.CreateFont("c:/windows/fonts/tahoma.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        _tahomaBold = new Font(_baseTahoma, 10, Font.BOLD);
        _tahoma = new Font(_baseTahoma, 10, Font.NORMAL);
        _tahoma16Bold = new Font(_baseTahoma, 18, Font.BOLD);
        _tahomaSmall = new Font(_baseTahoma, 8, Font.NORMAL);
    }

创建文档时,我按下按钮点击它:

        RegistryKey adobe = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe");

        if (adobe != null)
        {
            string path = adobe.GetValue("").ToString();

            GenerateDocuments();

            Process proc = new Process();

            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            proc.StartInfo.Verb = "print";

            string pdfFileName = _invoice.FullName;

            proc.StartInfo.FileName = path;
            proc.StartInfo.Arguments = @"/p /h " + pdfFileName;
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.CreateNoWindow = true;

            proc.Start();
            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            if (proc.HasExited == false)
            {
                if (!proc.WaitForExit(5000))
                    proc.Kill();
            }

            proc.EnableRaisingEvents = true;
            proc.Close();
        }

但是在纸上只有来自表格的行没有任何字符。没有文字或数字。

在要求规范中写道,用户必须在按钮点击时打印文档,我必须这样做。手动打开文档和“打印为图像”是不可能的。

任何人都可以提出建议,我该如何打印西里尔文件?

1 个答案:

答案 0 :(得分:0)

@Drac当我打开文件时,我看到西里尔字符;当我打印文件(正常打印)时,我看到西里尔字符。如果某台打印机无法正确打印文档,则需要查看打印机驱动程序(可能是您使用的错误)或打印机。