I am concatenating
a number of strings into an uber string, which is then drawn to PDF
. However, for some mysterious reason, the string is prematurely discontinued at line 48
. I have confirmed that the string itself contains all the desired information at all the proper times, which indicates the issue lies elsewhere.
我将一些字符串连接成一个超级字符串,然后将其绘制为PDF。然而,由于一些神秘的原因,字符串在第48行过早地中断。我已经确认字符串本身在所有适当的时间包含所有所需信息,这表明问题出在其他地方。
What could be occurring?
可能会发生什么?
This is my code:
这是我的代码:
@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];
Here is an image which illustrates the issue with special notice to the vertical offset (the date information on the right column should align with the Date label on the left column). There should be roughly 9 more entries of data, which is cut off prematurely. It's apparent when the formatting is correctly but it's pretty clear anyway.:
下面是一个图像,说明了垂直偏移的特殊注意事项(右列上的日期信息应与左列上的日期标签对齐)。应该还有大约9个数据条目,这些条目过早被切断。很明显格式化时是正确的,但无论如何都很清楚:
http://i.imgur.com/zNVXxIH.jpg
And here is the body of code which calls the code above (inside generate)
这里是调用上面代码的代码体(内部生成)
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 generate:PDFpathWithFileName];
NSURL *URL = [NSURL fileURLWithPath:PDFpathWithFileName];
if (URL) {
self->documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];
[self->documentInteractionController setDelegate:self];
[self->documentInteractionController presentPreviewAnimated:YES];
}
1 个解决方案
#1
1
My pagesize was too small
我的页面尺寸太小了
pagesize = CGSizeMake(612, 1200); // the 2nd argument was set to 792
Why this doesn't cut off the ENTIRE page, I don't know, but this did solve the immediate posted issue.
为什么这不会切断整个页面,我不知道,但这确实解决了立即发布的问题。
#1
1
My pagesize was too small
我的页面尺寸太小了
pagesize = CGSizeMake(612, 1200); // the 2nd argument was set to 792
Why this doesn't cut off the ENTIRE page, I don't know, but this did solve the immediate posted issue.
为什么这不会切断整个页面,我不知道,但这确实解决了立即发布的问题。