在OSX上打印PDF

时间:2014-02-24 12:19:11

标签: c# macos unity3d

我正在团结工作,我的任务是从统一摄像头拍摄的一些快照中创建并打印pdf。

在创建pdf之后的窗口上,可以通过调用ShellExecute函数并将print作为参数传递或使用stackoverflow上发布的函数轻松完成,即:

private void SendToPrinter()
{
    ProcessStartInfo info = new ProcessStartInfo();
    info.Verb = "print";
    info.FileName = @"c:\output.pdf";
    info.CreateNoWindow = true;
    info.WindowStyle = ProcessWindowStyle.Hidden;

    Process p = new Process();
    p.StartInfo = info;
    p.Start();

    p.WaitForInputIdle();
    System.Threading.Thread.Sleep(3000);
    if (false == p.CloseMainWindow())
        p.Kill();
}

,但我完全不知道如何才能在OSX版本中实现相同目标?

任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

  1. 您需要查看Apple"适用于Mac的打印编程指南"。 (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Printing/osxp_aboutprinting/osxp_aboutprt.html

  2. 要打印PDF页面,您需要一个CGContextRef。在您的视图drawRect:方法中,您可以获得正确的图形上下文:

    CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort];

  3. 用于将PDF页面绘制到上下文中的方法是CGContextDrawPDFPage(context,page);

  4. 打开PDF文档的最简单方法是使用CGPDFDocumentCreateWithURL

  5. 使用CGPDFDocumentGetPage获取页面。