在文件名中使用逗号(,)时,Microsoft Print to PDF无法正常工作

时间:2018-02-23 12:10:02

标签: c# wpf printing

    public void RenderCanvasImage(int maxRight, int maxBottom, Canvas surface, Transform transform)
{
            RenderTargetBitmap renderBitmap = new RenderTargetBitmap(maxRight, maxBottom, 96d, 96d, PixelFormats.Pbgra32);

            renderBitmap.Render(surface);

            PrintDialog dialog = new PrintDialog();

            if (dialog.ShowDialog() != true)
            {
                return;
            }

            Grid grid = new Grid();
            Image myImage = new Image();
            myImage.Source = renderBitmap;
            myImage.Stretch = Stretch.Uniform;
            grid.Children.Add(myImage);
            Grid.SetColumn(myImage, 0);
            Grid.SetRow(myImage, 1);

            grid.Measure(new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight));
            grid.Arrange(new Rect(new Point(0, 0), grid.DesiredSize));
            dialog.PrintVisual(grid, "My Canvas");
            surface.LayoutTransform = transform;
        }

我使用上面的代码用 Microsoft Print to PDF 打印我的画布。它在所有情况下都能正常工作,但是当我在文件名中输入逗号时,例如(打印,测试),同时打印。它不会保存我的文件,也不会提供任何错误/异常代码,通过这些代码我可以通知用户更改文件名。

请帮我解决我的问题。

1 个答案:

答案 0 :(得分:3)

简而言之,不要这样做

这是打印到PDF时的已知错误

使用其他驱动程序或不要在文件名中加上逗号

它不仅来自WPF,在某些情况下也是如此。

Bug in "Print to PDF" and "Print to XPS" in Windows 10? comma in filename results in zero-byte file

Microsoft Print to PDF not working

Found a bug in Microsoft Print to PDF

Microsoft Print to PDF in Windows 10