在我的应用程序中,我必须显示一个 PDF 阅读器(来自服务器的 PDF)并将所有内容复制到另一个 PDF。我正在使用阅读器来显示 PDF。
但它无法格式化 PDF 中的文本。粗体文本以除粗体之外的一些不同的窄字体显示。你能给我一个解决方案吗?
同样,在写作时,我正在使用使用 Quartz 将 PDF 文档保存到磁盘。但在这里我面临同样的问题。新 PDF 显示的字体与源 PDF 中使用的字体不同。
我也尝试了下面的代码。我仍然得到相同的 O/P。请帮我解决一下这个。我还没有使用斜体/下划线等其他文本字体对其进行测试。它也应该适用于这些字体。
- (void) generatePdfWithFilePath: (NSString *)thefilePath {
UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, NULL);
BOOL done = NO;
do {
//Start a new page.
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MyPdf" ofType:@"pdf"];
CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:filePath];
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL(url);
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, 1);
CGRect paperSize = CGPDFPageGetBoxRect(CGPDFDocumentGetPage (pdf, 1), kCGPDFMediaBox);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, 0, paperSize.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawPDFPage(context, page);
done = YES;
} while (!done);
UIGraphicsEndPDFContext();
}
如果源 PDF 是从 iOS 设备以外的源生成的,则会发生这种情况。