Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIPrintPageRenderer未使用UIMarkupTextPrintFormatter绘制任何内容_Ios_Pdf_Core Data - Fatal编程技术网

Ios UIPrintPageRenderer未使用UIMarkupTextPrintFormatter绘制任何内容

Ios UIPrintPageRenderer未使用UIMarkupTextPrintFormatter绘制任何内容,ios,pdf,core-data,Ios,Pdf,Core Data,我第一次使用这种技术 基本上,我得到了一个核心数据数据库,其中包含我希望从中生成表的数据 我在这里找到了这个帖子: 但我在尝试从生成的PDF中获取可见的内容时遇到了障碍 到目前为止,我只设法让PDF显示2个空白的白页,它不打印我的简单文本 这是我的班级档案: // PageRenderer Class header file #import <UIKit/UIKit.h> @interface PageRenderer : UIPrintPageRenderer { BO

我第一次使用这种技术

基本上,我得到了一个核心数据数据库,其中包含我希望从中生成表的数据

我在这里找到了这个帖子:

但我在尝试从生成的PDF中获取可见的内容时遇到了障碍

到目前为止,我只设法让PDF显示2个空白的白页,它不打印我的简单文本

这是我的班级档案:

// PageRenderer Class header file
#import <UIKit/UIKit.h>

@interface PageRenderer : UIPrintPageRenderer
{
    BOOL _generatingPdf;
}

-(CGRect) paperRect;
-(CGRect) printableRect;
-(NSData*) printToPDF;

@end



// PageRenderer Class implementation file
#import "PageRenderer.h"

@implementation PageRenderer

- (CGRect) paperRect
{     
    if (!_generatingPdf)
    {
        return [super paperRect];
    }

    return UIGraphicsGetPDFContextBounds();
}

- (CGRect) printableRect
{
    if (!_generatingPdf)
        return [super printableRect];

    return CGRectInset( self.paperRect, 20, 20 );
}

- (NSData*) printToPDF
{
    _generatingPdf = YES;

    NSMutableData *pdfData = [NSMutableData data];

    UIGraphicsBeginPDFContextToData( pdfData, CGRectMake(0, 0, 792, 612), nil );  // letter-size, landscape

    [self prepareForDrawingPages: NSMakeRange(0, 1)];

    CGRect bounds = UIGraphicsGetPDFContextBounds();

    for ( int i = 0 ; i < self.numberOfPages ; i++ )
    {
        UIGraphicsBeginPDFPage();

        [self drawPageAtIndex: i inRect: bounds];
    }

    UIGraphicsEndPDFContext();

    _generatingPdf = NO;

    //    NSString* filename = @"/Volumes/Macintosh HD 2/test.pdf";
    //    [pdfData writeToFile: filename  atomically: YES];

    return pdfData;
}

- (NSInteger)numberOfPages
{
    return 1;
}

@end
//PageRenderer类头文件
#进口
@接口页面渲染器:UIPrintPageRenderer
{
BOOL_生成pdf;
}
-(CGRect)纸质文件;
-(CGRect)可打印RECT;
-(NSData*)printToPDF;
@结束
//PageRenderer类实现文件
#导入“PageRenderer.h”
@实现页面渲染器
-(CGRect)paperRect
{     
如果(!\u生成PDF)
{
返回[超级纸质];
}
返回UIGraphicsGetPDFContextBounds();
}
-(CGRect)可打印RECT
{
如果(!\u生成PDF)
返回[super-printableRect];
返回CGRectInset(self.paperRect,20,20);
}
-(NSData*)printToPDF
{
_生成PDF=是;
NSMutableData*pdfData=[NSMutableData];
UIGraphicsBeginPDFContextToData(pdfData,CGRectMake(0,0792612),nil);//字母大小,横向
[self prepareForDrawingPages:nsMakerRange(0,1)];
CGRect bounds=UIGraphicsGetPDFContextBounds();
对于(int i=0;i
以下是生成PDF文件的代码:

-(void)generateLog
{        
    UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];

    pic.delegate = self;

    PageRenderer *pageRenderer = [[PageRenderer alloc] init];

    pic.printPageRenderer = pageRenderer;

    UIMarkupTextPrintFormatter *html = [[UIMarkupTextPrintFormatter alloc] init];
    //html.markupText = @"<table border='1' width='500' height='200'>";
    html.markupText = @"<html><head></head><body><p>HTML TEXT HERE, <b>BOLD</b> THIS!</p></body></html>";
    html.startPage = 0;
    html.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
    html.maximumContentWidth = 6 * 72.0;

    pic.printFormatter = html;

    [pageRenderer drawPrintFormatter:html forPageAtIndex:0];    

    NSData *pdfData = [pageRenderer printToPDF];

    [pdfData writeToFile:[MediaDirectory mediaPathForFileName:@"triplog.pdf"] atomically:YES];

    NSLog(@"triplog.pdf written to %@", [MediaDirectory mediaPathForFileName:@"triplog.pdf"]);

    [html release];
}
-(无效)生成日志
{        
UIPrintInteractionController*pic=[UIPrintInteractionController sharedPrintController];
pic.delegate=self;
PageRenderer*PageRenderer=[[PageRenderer alloc]init];
pic.printPageRenderer=页面渲染器;
UIMarkupTextPrintFormatter*html=[[UIMarkupTextPrintFormatter alloc]init];
//html.markupText=@”;
html.markupText=@“此处为html文本,加粗!

”; html.startPage=0; html.contentInsets=UIEdgeInsetsMake(72.0,72.0,72.0,72.0);//1英寸边距 html.maximumContentWidth=6*72.0; pic.printFormatter=html; [PagePrintFormatter:html forPageAtIndex:0]; NSData*pdfData=[pageRenderer printToPDF]; [pdfData WriteFile:[MediaDirectory mediaPathForFileName:@“triplog.pdf”]原子性:是]; NSLog(@“triplog.pdf写入%@,[MediaDirectory mediaPathForFileName:@“triplog.pdf]”); [html版本]; }

你知道我为什么会得到一张空白页吗?

-\u-!终于有东西了

似乎我需要使用:

[pageRenderer addPrintFormatter:html startingAtPageAtIndex:0];
而不是:

[pageRenderer drawPrintFormatter:html forPageAtIndex:0];

在我完成后,它开始工作。

-\u-!终于有东西了

似乎我需要使用:

[pageRenderer addPrintFormatter:html startingAtPageAtIndex:0];
而不是:

[pageRenderer drawPrintFormatter:html forPageAtIndex:0];

在我这么做之后,它开始工作。

我意识到这很旧,但我甚至无法让您的代码正常工作?我意识到这很旧,但我甚至无法让您的代码正常工作?