我正在研究一个小框架,我需要获取所有可用自定义论文的列表
在核心打印参考中只有一个名为PMPrinterGetPaperList的方法,但它不返回自定义纸张:
This function obtains a list of the papers that a given printer claims to support.
The paper list does not include any custom paper sizes that may be available
如果我打开一个 pdf 文档,然后打开打印对话框,我可以创建和选择自定义论文。
作为总结,我想获得一个/我可以使用 print-dialog 和 Objective-C 方法PMPaperCreateCustom创建的自定义论文列表
它必须在Objective-C中。
有任何想法吗?谢谢
编辑1:
这是基于第一个答案的片段:
for (int i = 0; i < printerCount; i++)
{
CFStringRef currentPrinterName;
currentPrinter = (PMPrinter) CFArrayGetValueAtIndex(printerList, i);
currentPrinterName = PMPrinterGetName(currentPrinter);
if ([(NSString *) currentPrinterName caseInsensitiveCompare:printerName] == NSOrderedSame)
{
error = PMSessionCreatePageFormatList([[NSPrintInfo sharedPrintInfo] PMPrintSession], currentPrinter, &pageFormatList);
if (error != noErr)
{
// TODO
}
NSUInteger pageCount = CFArrayGetCount(pageFormatList);
for (int n = 0; n < pageCount; n++)
{
currentPage = (PMPageFormat) CFArrayGetValueAtIndex(pageFormatList, n);
error = PMGetPageFormatPaper(currentPage, ¤tPaper);
if (error != noErr)
{
// TODO
}
if (PMPaperIsCustom(currentPaper))
{
NSLog(@"It's custom");
}
}
break;
}
currentPrinter = NULL;
}
但我只得到“普通”文件的列表,没有自定义文件。
在打印对话框中,我创建了一个自定义纸张(见屏幕截图),它应该在列表中。
截屏: