【发布时间】:2019-08-14 05:17:06
【问题描述】:
我在 web 视图中使用jsPDF 来生成我想在连接的 USB 标签打印机上打印出来的 PDF。我收到“无法识别的选择器发送到实例”错误。
这是来自 Xcode 控制台的错误:
-[__NSCFString bytes]: unrecognized selector sent to instance 0x1089cb868
下面是函数供参考:
- (void) printPDFwithPrinter: (NSString *) printerName andData: (NSData *) data{
NSLog(@"%@", printerName);
PDFDocument *pdfDocument = [[PDFDocument alloc] initWithData:data];
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
[printInfo setTopMargin:0.0];
[printInfo setBottomMargin:0.0];
[printInfo setLeftMargin:0.0];
[printInfo setRightMargin:0.0];
[printInfo setHorizontalPagination:NSFitPagination];
[printInfo setVerticalPagination:NSFitPagination];
[printInfo setPrinter:[NSPrinter printerWithName:printerName]];
PDFPrintScalingMode scale = kPDFPrintPageScaleDownToFit;
NSPrintOperation *op = [pdfDocument printOperationForPrintInfo: printInfo scalingMode: scale autoRotate: YES];
[op setShowsPrintPanel:NO];
[op setShowsProgressPanel:NO];
[op runOperation];
}
pdf 数据是 pdf 正文作为字符串的原始输出。 (Docs)
我是 Objective-C 的新手,所以我将 AppBurger 用于我的 Native/webview 桥(用 HTML/JS/CSS 构建我的应用程序)。
到目前为止,这是我的 Xcode 项目: https://github.com/josiaho/AppBurger-Print-Test
【问题讨论】:
-
请edit您的问题包含完整和准确的错误消息。
-
您能否也显示生成
NSData对象的代码,您可以从该对象调用您的printPDF:方法?NSString上没有bytes函数,b.t.w. -
@MichaelDautermann 我已经为整个 Xcode 项目添加了一个存储库。谢谢!
标签: objective-c xcode cocoa printing pdfdocument