将 UIScrollView 发送到打印机

Posted

技术标签:

【中文标题】将 UIScrollView 发送到打印机【英文标题】:Send a UIScrollView to printer 【发布时间】:2016-04-20 04:22:44 【问题描述】:

我有一个 scrollView 有多个子视图,如详细发票。我想将我的scrollView 转换为 pdf,以便我可以轻松地将其发送到打印机以及通过电子邮件发送。我们应该怎么做?有什么可能或简单的方法吗?

【问题讨论】:

【参考方案1】:

您可以使用Uiview 来执行此操作。因此,首先您应该在滚动视图中添加 uiview,然后在该视图中添加其他内容。你可以制作类似的方法,

-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename

// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];

// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();


// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData

[aView.layer renderInContext:pdfContext];

// remove PDF rendering context
UIGraphicsEndPDFContext();

// Retrieves the document directories from the ios device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString* documentDirectory = [documentDirectories objectAtIndex:0];
documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];

// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];

调用这个方法,传递uiview(你想从中制作pdf),字符串表示文件名。此方法将创建 pdf 并将数据存储到文档目录。如果您不想存储,请评论该部分。

你可以显示pdfdatawebview喜欢,

 [webview loadData:pdfData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

希望这会有所帮助:)

【讨论】:

但是先生有多个发票数据.. 让我解释一下.. 一个 UIView 相当于 self.view 的大小但是这个单一的 UIView 代表一个单一的发票但我有多个发票我为什么我使用滚动视图.. 我可以通过类型转换将我的滚动视图传递给上述方法吗? (UIView *)self.scrollView 可以这样传递我的scrollView吗? 你的序列应该像滚动视图 - ContainerView - (任何东西 - 任意数量的视图)。如果您通过 containerview,则所有子视图都包含在其中。 是的,先生。这就是为什么我感到困惑。我想使用与 UIView 相同的视觉表示。这就是为什么我想把它转换成PDF。

以上是关于将 UIScrollView 发送到打印机的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 帮助

UIScrollView 内的可选 UITableViewCells

IOS 管理键盘 - 上移 UIScrollView 内容

如何保持 UIscrollview 框架固定但动态范围

通过代理监听UIScrollView的滚动事件 Objective-C语言

我无法将 handlePan: 发送到我的 UIScrollView?