objective-c - 如何使用 Cocoa 在 PDF 中生成网格?

标签 objective-c cocoa pdf grid quartz-graphics

我是 Cocoa 和 Objective-C 的初学者。

我想制作一个 Cocoa 应用程序,它将生成一个网格网格(用于练习中国书法)并导出为 PDF,类似于此在线生成器:http://incompetech.com/graphpaper/chinesequarter/ .

我应该如何生成网格?我尝试将 Quartz 与 CustomView 一起使用,但没有取得很大进展。另外,一旦在 CustomView 中绘制了网格,将其“打印”到 PDF 的方法是什么?

感谢您的帮助。

最佳答案

How should I generate the grid?

实现custom view绘制它。

I've tried to use Quartz with a CustomView, …

这是一种方式; AppKit drawing是另一个。不过,它们的大部分部分非常相似。 AppKit直接基于PostScript,而Quartz则间接基于PostScript。

… but didn't manage to get very far.

您应该就您的问题提出更具体的问题。

Also, once the grid is drawn in the CustomView, what is the method for "printing" that to a PDF?

发送a dataWithPDFInsideRect: message ,通过其 bounds .

请注意,没有“一旦在 CustomView 中绘制网格”。尽管可能存在一些内部缓存,但从概念上讲, View 不会绘制一次并保留它;而是绘制一次。它会在需要的时候、每次需要的时候、到需要的地方。当窗口需要重新绘制时,Cocoa 将告诉脏区域中的任何 View 进行(重新)绘制,并且它们最终将绘制到屏幕上。当您请求 PDF 数据时,这也会告诉 View 进行绘制,并且它将绘制到记录 PDF 数据的上下文中。这允许 View 既可以是惰性的(仅在需要时绘制),又可以在不同的上下文中以不同的方式绘制(例如,打印时)。

关于objective-c - 如何使用 Cocoa 在 PDF 中生成网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759979/

相关文章:

iphone - cocoa : how do you name your init parameters for not interfering with ivars?

java - 我如何在 spring mvc 中下载 PDF 文件?

pdf - kartik GridView Yii2 - 如何配置 PDF 的导出配置(页眉、页脚、标题)

ios - UIScrollView 在横向模式下不滚动 - 附上测试代码和屏幕截图

objective-c - Objective-C中的retain和strong有什么区别?

iphone - 每个细节 View Controller 一个计时器

javascript - 如何向 PDF 添加 JavaScript 按钮以将数据保存到 (png) 文件?

ios - ABAddressBookRemoveRecord();偶尔不按预期删除

objective-c - 以编程方式更改 NSSlider 值

swift - 如何在 Swift 4 中仅将 NSButton 的一侧的角圆角化?