Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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 UIPrintInteractionController在不应将单个页面拆分为多个页面时将其拆分_Ios_Portrait_Printing Web Page - Fatal编程技术网

Ios UIPrintInteractionController在不应将单个页面拆分为多个页面时将其拆分

Ios UIPrintInteractionController在不应将单个页面拆分为多个页面时将其拆分,ios,portrait,printing-web-page,Ios,Portrait,Printing Web Page,我有一个HTML字符串(一系列嵌套表),我正试图在iOS中打印它。以下是my ViewController中启动打印的方法: - (IBAction) Print:(id)sender { UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController]; if(!controller){ NSLog(@"Couldn't get shar

我有一个HTML字符串(一系列嵌套表),我正试图在iOS中打印它。以下是my ViewController中启动打印的方法:

- (IBAction) Print:(id)sender
{
    UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
    if(!controller){
        NSLog(@"Couldn't get shared UIPrintInteractionController!");
        return;
    }
    controller.printFormatter = [[UIMarkupTextPrintFormatter alloc] initWithMarkupText:@"<!DOCTYPE html PUBLIC\" -//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv =\"Content-Type\" content=\"text/html;charset=utf-8\"/><title>SpanCalc</title></head><body style=\"margin-right:5%;font-family:Arial, Helvetica\"><H3>SpanCalc</H3><span style=\"padding-bottom:10px\"><table style=\"border:2px solid;border-collapse:collapse\"><tr><td style=\"border:1px solid;padding-left:5px;padding-right:5px;\"><H3>Floor Layer</H3><span style=\"padding-bottom:10px\"><table style=\"border:2px solid;border-collapse:collapse\"><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Floor Covering:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">Cushioned Vinyl</td></tr></table></td></tr><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Gypsym Concrete Topped:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">False</td></tr></table></td></tr><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Subfloor:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">1 Layer ²³/₃₂\" OSB</td></tr></table></td></tr></table></span></td></tr><tr><td style=\"border:1px solid;padding-left:5px;padding-right:5px;\"><H3>Framing</H3><span style=\"padding-bottom:10px\"><table style=\"border:2px solid;border-collapse:collapse\"><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Framing:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">I-Joists</td></tr></table></td></tr><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>On Center Spacing:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">@24\"o.c.</td></tr></table></td></tr><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Joist Depth:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">&lt; 14\" I-joists</td></tr></table></td></tr></table></span></td></tr><tr><td style=\"border:1px solid;padding-left:5px;padding-right:5px;\"><H3>Ceiling Layer</H3><span style=\"padding-bottom:10px\"><table style=\"border:2px solid;border-collapse:collapse\"><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Subfloor:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">2 Layers ¹/₂\" GWB</td></tr></table></td></tr><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Resilient Channel Spacing:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">@16\"o.c.</td></tr></table></td></tr><tr><td style=\"background-color:rgba(0,0,0,0.1);border-top:1px solid\"><table width=100% style=\"table-layout:fixed\"><tr><td>Insulation:</td></tr><tr><td align=\"right\" style=\"padding-right:5px;\">3.5\" Fiberglass Batt</td></tr></table></td></tr></table></span></td></tr></table></span></body></html>"];

    UIPrintInteractionCompletionHandler completionHandler =
    ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
        if(!completed && error){
            NSLog(@"FAILED! due to error in domain %@ with error code %ld", error.domain, (long)error.code);
        }
    };

    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.jobName = @"PRINT TEST";
    printInfo.duplex = UIPrintInfoDuplexNone;
    controller.printInfo = printInfo;
    [controller presentAnimated:YES completionHandler:completionHandler];  // iPhone   
}
-(iAction)打印:(id)发件人
{
UIPrintInteractionController*控制器=[UIPrintInteractionController sharedPrintController];
如果(!控制器){
NSLog(@“无法获取共享UIPrintInteractionController!”);
返回;
}
controller.printFormatter=[[UIMarkupTextPrintFormatter alloc]initWithMarkupText:@“SpancalCSpancalFloor层地板覆盖层:软垫乙烯基吉普赛姆混凝土顶部:假底层:1层/₃₂\" OSB框架:工字钢龙骨中心间距:@24“o.c.龙骨深度:14”工字钢龙骨分层下层:2层/₂\" GWBRESLIENT通道间距:@16 \“o.c.绝缘:3.5 \“玻璃纤维板”];
UIPrintInteractionCompletionHandler completionHandler=
^(UIPrintInteractionController*printController,布尔完成,N错误*错误){
如果(!已完成&错误){
NSLog(@“失败!由于域%@中出现错误,错误代码为%ld”,error.domain,(long)error.code);
}
};
UIPrintInfo*printInfo=[UIPrintInfo printInfo];
printInfo.outputType=UIPrintInfoOutputGeneral;
printInfo.jobName=@“打印测试”;
printInfo.duplex=UIPrintInfoDuplexNone;
controller.printInfo=printInfo;
[controller presentAnimated:YES completionHandler:completionHandler];//iPhone
}
可以在此处找到objective-c演示项目:。HTML应该适合一个面向肖像的页面(我测量过)。但是,UIPrintInteractionController正在将内容拆分为多个页面:

我尝试过但未成功地解决以下问题:

  • 在UIPrintRenderer中嵌入我的UIMarkupTextPrintFormatter
  • 设置printFormatter.MaximumContentHeight(使事情变得更糟)
  • 使用UIWebView中的打印格式化程序
  • 设置printFormatter.PerPageContentInsets
  • 设置printFormatter.ContentInsets
  • 设置printFormatter.StartPage
请注意,如果printInfo.Orientation设置为横向,则不会出现此问题


任何见解都将不胜感激

您是否尝试过将页面转换为UIImage,然后可以按照UIPrintInteractionController的方式调整图像大小?我试图避免这种方法,主要是因为苹果的WkWebView.ViewPrintFormatter似乎尊重以前的
分页符:总是
样式。。。这对于防止图像和图表在页面之间被分割非常重要。您好。我认为你有很多反斜杠,如果你错过了一个,可能会导致换行。尝试为字符串使用单引号,并删除所有反斜杠。试着告诉美赞克斯这个建议。这主意不错。我刚刚试过(用
'
替换所有
\“
)没有用。bummer.FWIW,我还尝试了在
中添加
分页符:avoid
,你是否尝试过将页面转换成UIImage,然后你可以按照你想要的方式调整图像的大小UIPrintInteractionController?我尝试过避免这种方法,主要是因为苹果的WkWebView.ViewPrintFormatter似乎会重新启动t以前的
分页符:始终使用
样式…这对于防止图像和图表在页面之间被拆分非常重要。您好。我认为您有很多反斜杠,如果您遗漏了一个,可能会导致换行。请尝试在字符串中使用一个引号,并删除所有反斜杠。尝试告诉我ANKS的建议。不是一个坏主意。我只是尝试了一下(用
替换所有
),但没有效果。bummer.FWIW,我还试着在