【问题标题】:reportlab: how to set initial/default view?reportlab:如何设置初始/默认视图?
【发布时间】:2017-07-04 17:16:36
【问题描述】:

我已经成功生成了一个 empy PDF,但它没有设置初始视图。我想将初始视图设置为“完整视图”,即最终用户看到一页适合 PDF 阅读器(= A4 页面适合屏幕)。

def render_to_response(self, context, **response_kwargs):

    response = HttpResponse(content_type='application/pdf; charset=utf-8')
    response['Content-Disposition'] = 'attachment; filename=""'

    p = canvas.Canvas(response, pagesize=A4, )
    p.showPage()
    p.save()

    return response

如何使用reportlab 设置默认缩放视图(如果可能)?

【问题讨论】:

    标签: python django pdf reportlab


    【解决方案1】:

    总之

    添加这一行:

    p.setViewerPreference("FitWindow", "true")
    

    解释

    设置观看者偏好:

    def setViewerPreference(self,pref,value):
        set one of the allowed enbtries in the documents viewer preferences
    

    可用的prefvalue 是:

    class ViewerPreferencesPDFDictionary(CheckedPDFDictionary):
        validate=dict(
            HideToolbar=checkPDFBoolean,
            HideMenubar=checkPDFBoolean,
            HideWindowUI=checkPDFBoolean,
            FitWindow=checkPDFBoolean,
            CenterWindow=checkPDFBoolean,
            DisplayDocTitle=checkPDFBoolean,    #contributed by mark Erbaugh
            NonFullScreenPageMode=checkPDFNames(*'UseNone UseOutlines UseThumbs UseOC'.split()),
            Direction=checkPDFNames(*'L2R R2L'.split()),
            ViewArea=checkPDFNames(*'MediaBox CropBox BleedBox TrimBox ArtBox'.split()),
            ViewClip=checkPDFNames(*'MediaBox CropBox BleedBox TrimBox ArtBox'.split()),
            PrintArea=checkPDFNames(*'MediaBox CropBox BleedBox TrimBox ArtBox'.split()),
            PrintClip=checkPDFNames(*'MediaBox CropBox BleedBox TrimBox ArtBox'.split()),
            PrintScaling=checkPDFNames(*'None AppDefault'.split()),
            )
    

    参考

    【讨论】:

    • 我没有使用实际文件进行测试,但我通过response 返回了 PDF。在我的情况下,没有应用任何选项(我已经尝试了所有选项,设置为真或假,没有任何反应)....
    • 我认为这可能是在 PDF 阅读器本身的配置中,我已经放弃了(就像凌乱的 reportlab 域中的许多其他东西一样)。
    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多