OGeek|极客世界-中国程序员成长平台

标题: ios - 为什么我的字符串在写入 PDF 时会被截断 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:10
标题: ios - 为什么我的字符串在写入 PDF 时会被截断

我将多个字符串连接成一个 super 字符串,然后将其绘制到PDF。然而,由于某种神秘的原因,该字符串在 line 48 处提前终止。我已经确认字符串本身在所有适当的时间都包含所有所需的信息,这表明问题出在其他地方。

会发生什么?

这是我的代码:

@interface Review ()
{
    CGSize pagesize;
    UIDocumentInteractionController *documentInteractionController;
}

...
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 3000), nil); 
...

// prepare string ... we're in a loop
// each addition is typically a single line and either a word or number
// as you can see the first string is itself. it's possible i'm doing this in a hacky way, but i am preparing pdfText in multiple stages identical as below in the loop and decided to use on string instead of many.
// i can post the entire loop if requested, but i don't see any additional useful information it provides as it's simply a series of the code line below
pdfText = [NSString stringWithFormat"\n%@\n%@\n%@\n%@\n%@\n%@\n", pdfText, _fd.t2_tripNumber[i], _fd.t2_departure[i], _fd.t2_outFuel[i], _fd.t2_startHobbs[i], _fd.t2_whoIsFlying[i]];


if(i == 0)
{
     // for reasons undetermined, i have to offset by a large negative value to format the text properly. if set to 0, the text is near the middle of the page??? i'm thinking this is a clue.
     // if pdfText is set to a single line, the negative bias is unneeded. wtf?
        rect = CGRectMake(offset, -103, pagesize.width, pagesize.height);
 }else{
        rect = CGRectMake(offset, 12, pagesize.width, pagesize.height);
 }  

 [pdfText drawInRect:rect withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentLeft];

这是一张图片,它说明了垂直偏移的特别注意问题(右栏中的日期信息应与左栏中的日期标签对齐)。应该还有大约 9 个数据条目,这些条目被过早地切断了。格式正确时很明显,但无论如何都很清楚。:

http://i.imgur.com/zNVXxIH.jpg

这是调用上述代码的代码主体(在生成内部)

pagesize = CGSizeMake(612, 792);
NSString *fileName = @"AirShare.pdf";
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [path objectAtIndex:0];
NSString *PDFpathWithFileName = [docDirectory stringByAppendingPathComponent:fileName];

[self generateDFpathWithFileName];

NSURL *URL = [NSURL fileURLWithPathDFpathWithFileName];
if (URL) {
    self->documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];
    [self->documentInteractionController setDelegate:self];
    [self->documentInteractionController presentPreviewAnimated:YES];
} 



Best Answer-推荐答案


我的页面太小了

pagesize = CGSizeMake(612, 1200); // the 2nd argument was set to 792

为什么这不会切断整个页面,我不知道,但这确实解决了立即发布的问题。

关于ios - 为什么我的字符串在写入 PDF 时会被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16706485/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4