gpt4 book ai didi

iphone - Cocoa 创建的 PDF 无法正确渲染

转载 作者:行者123 更新时间:2023-12-03 17:26:50 25 4
gpt4 key购买 nike

我在 iPad 上创建了 PDF,但问题是当文本行超过 1 行时,内容就会脱离页面。这是我的代码:

void CreatePDFFile (CGRect pageRect, const char *filename) {
CGContextRef pdfContext;
CFStringRef path;
CFURLRef url;
CFMutableDictionaryRef myDictionary = NULL;
path = CFStringCreateWithCString (NULL, filename,
kCFStringEncodingUTF8);
url = CFURLCreateWithFileSystemPath (NULL, path,
kCFURLPOSIXPathStyle, 0);
CFRelease (path);
myDictionary = CFDictionaryCreateMutable(NULL, 0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
NSString *foos = @"Title";
const char *text = [foos UTF8String];
CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR(text));
CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("Author"));
pdfContext = CGPDFContextCreateWithURL (url, &pageRect, myDictionary);
CFRelease(myDictionary);
CFRelease(url);

CGContextBeginPage (pdfContext, &pageRect);

CGContextSelectFont (pdfContext, "Helvetica", 12, kCGEncodingMacRoman);
CGContextSetTextDrawingMode (pdfContext, kCGTextFill);
CGContextSetRGBFillColor (pdfContext, 0, 0, 0, 1);
NSString *body = @"text goes here";
const char *text = [body UTF8String];
CGContextShowTextAtPoint (pdfContext, 30, 750, text, strlen(text));

CGContextEndPage (pdfContext);

CGContextRelease (pdfContext);}

现在问题在于我将文本写入页面,但问题是我似乎无法指定多行“ TextView ”。

最佳答案

我认为您可以使用 CGContextGetTextPosition 在绘制文本时测量文本。使用它,您可以有效地换行文本。

您可以使用 UILabel 或 UITextView 来绘制文本。将 CALayer renderInContext 与您的 pdf 上下文结合使用。

关于iphone - Cocoa 创建的 PDF 无法正确渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2707412/

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