【问题标题】:Unable to set PDF margins to print from iOS无法将 PDF 边距设置为从 iOS 打印
【发布时间】:2014-07-10 00:16:54
【问题描述】:

我正在通过我的应用程序以UIWebView 显示 PDF。

- (void) startPrinting
{
    UIPrintInfo *pi = [UIPrintInfo printInfo];
    pi.outputType = UIPrintInfoOutputGeneral;
    pi.jobName = self.webView.request.URL.absoluteString;
    pi.orientation = UIPrintInfoOrientationPortrait;
    pi.duplex = UIPrintInfoDuplexLongEdge;

    UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
    pic.printInfo = pi;
    pic.showsPageRange = NO;
    pic.printFormatter = self.webView.viewPrintFormatter;
    UIPrintPageRenderer *renderer = [[UIPrintPageRenderer alloc] init];
    self.webView.viewPrintFormatter.printPageRenderer.headerHeight = 30.0f; //webView is the IBOutlet connected
    self.webView.viewPrintFormatter.printPageRenderer.footerHeight = 30.0f;
    self.webView.viewPrintFormatter.contentInsets = UIEdgeInsetsMake(0.0f, 30.0f, 0.0f, 30.0f);
    self.webView.viewPrintFormatter.startPage = 0;
    [renderer addPrintFormatter:self.webView.viewPrintFormatter startingAtPageAtIndex:0];
    pic.printPageRenderer = renderer;

    [pic presentAnimated:YES completionHandler:^(UIPrintInteractionController *pic2, BOOL completed, NSError *error) {
        NSLog(@"Completed status = %d and error status = %@", completed, error);
    }];
}

在 NSObject 类中,以下代码使用标准 A4 大小的纸张。

- (void)drawPDF:(NSString*)fileName
{
    // Create the PDF context using the default page size of 612 x 792.
    UIGraphicsBeginPDFContextToFile(fileName, CGRectZero, nil);
    // Mark the beginning of a new page.
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);

    //[self drawText:@"Hello World" inFrame:CGRectMake(0, 0, 300, 50)];

    [self drawLabels];
    [self drawLogo]; 

    // Close the PDF context and write out the contents.
    UIGraphicsEndPDFContext();

}

我已加载大小为 612 x 792 的笔尖来创建 pdf。但是当我从打印机打印输出时,我得到的打印如下图所示。

如何将 PDF 调整到所需的边距?

【问题讨论】:

    标签: ios objective-c pdf


    【解决方案1】:

    我添加后解决了这个问题

     UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 792, 1122), nil);
    

    而不是

    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);
    

    在drawPdf方法中。

    此外,我将 xib 大小从 612 x 792 更改为 792 x 1122,从那里生成 pdf。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 2012-03-29
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多