TLDR:テキストが/で揃えられた要素で構成されるコンテンツUIWebView
を含むものを印刷すると、結果のドキュメントには予想外に大きな下マージンを持つページが含まれます。HTML
right
center
私はこの問題に遭遇し、同様の問題を抱えている人をグーグルで見つけることができなかったことに非常に驚きました. 私はアップルにレーダーを提出し (#20760071)、またの GitHub リポジトリに問題を作成しました。ResearchKit
ORKHTMLPDFWriter
UIWebView
私の知る限り、これはへの変換HTML
に使用するすべてのライブラリにも影響しますPDF
。テストしました:
誰かが何らかの回避策を思い付くことができるかどうか疑問に思っています。
再現方法:
NSMutableString* html = [NSMutableString string];
[html appendString:@"<html><body>"];
for (int i=0; i<200; i++) {
[html appendString:@"<div align=\"right\">line</div>"];
}
[html appendString:@"</body></html>"];
UIPrintInteractionController* pc = [UIPrintInteractionController sharedPrintController];
UIPrintInfo* printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGrayscale;
pc.printInfo = printInfo;
pc.showsPaperSelectionForLoadedPapers = YES;
UIWebView* web = [UIWebView new];
[web loadHTMLString:html baseURL:nil];
pc.printFormatter = web.viewPrintFormatter;
[pc presentAnimated:YES completionHandler:^(UIPrintInteractionController *printInteractionController, BOOL completed, NSError *error) {
NSLog(@"%d -- %@",completed, error);
}];
でこの問題を示すプロジェクトを複製することもできますResearchKit
。
編集 - 多少使用可能な回避策:
コンテンツ (画像など) の特定の幅がわかれば、テキストの配置を指定せずに配置できます。
自動マージンの使用:
<div>
<div style="width:200px; margin-left:auto; margin-right:0px;">
content
</div>
</div>
浮動列:
<div>
<div style="width:200px; float:right;">
content
</div>
</div>
ただし、上記のいずれも、私が懸念している主な使用例である可変長テキストの配置には機能しません。