gpt4 book ai didi

ios - 有什么方法可以从 iOs 中的 XML/HTML 模板生成 PDF 文件

转载 作者:可可西里 更新时间:2023-11-01 03:06:45 28 4
gpt4 key购买 nike

我正在创建一个 iPad 应用程序,因为我必须使用不同的 PDF 表单。我得到了一些使用 Quartz2D 通过代码生成 PDF 文件的方法。但是我必须通过代码编写整个表单。将来我可能需要更新 PDF 表单,所以我必须再次编写代码。所以我听说有一个名为 iTextSharp 的组件用于创建 .net pdf - iOS 有类似的东西吗?这样我就可以使用一些 XML 模板来创建 PDF 文件。请帮忙,谢谢

最佳答案

我在我的应用程序中使用 iOS 打印子系统和 UIMarkupTextPrintFormatter 执行此操作。诀窍是编写您自己的自定义 UIPrintPageRenderer,它会覆盖 paperRect 和 numberOfPages 并返回正确的值。您将把您的 UIMarkupTextPrintFormatter 添加到您的自定义 UIPrintPageRenderer。

然后,在自定义 UIPrintPageRenderer 的上下文中,您将需要与此类似的例程:

- (CGRect) paperRect
{
if (!_generatingPdf)
return [super paperRect];

return UIGraphicsGetPDFContextBounds();
}

- (CGRect) printableRect
{
if (!_generatingPdf)
return [super printableRect];

return CGRectInset( self.paperRect, 20, 20 );
}

- (NSData*) printToPDF
{
_generatingPdf = YES;

NSMutableData *pdfData = [NSMutableData data];

UIGraphicsBeginPDFContextToData( pdfData, CGRectMake(0, 0, 792, 612), nil ); // letter-size, landscape

[self prepareForDrawingPages: NSMakeRange(0, 1)];

CGRect bounds = UIGraphicsGetPDFContextBounds();

for ( int i = 0 ; i < self.numberOfPages ; i++ )
{
UIGraphicsBeginPDFPage();

[self drawPageAtIndex: i inRect: bounds];
}

UIGraphicsEndPDFContext();

_generatingPdf = NO;

// NSString* filename = @"/Volumes/Macintosh HD 2/test.pdf";
// [pdfData writeToFile: filename atomically: YES];

return pdfData;
}

关于ios - 有什么方法可以从 iOs 中的 XML/HTML 模板生成 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com