Django easy_pdf 删除边距

Posted

技术标签:

【中文标题】Django easy_pdf 删除边距【英文标题】:Django easy_pdf remove margin 【发布时间】:2020-05-29 00:24:42 【问题描述】:

要从 html 创建 pdf,我使用 easy_pdf 连接到 xhtml2pdf。

小例子:

在 view.py 中

from easy_pdf.rendering import render_to_pdf_response

context = dict('user_company': 'test')
template_name = "pdf_template.html"
return render_to_pdf_response(request, template_name, context)

html模板:

<!DOCTYPE html>
% load static %

<html lang="en">
<head>
    <style>
        * 
            margin: 0 !important;
            padding: 0 !important;
          
    </style>
</head>
<body>
    user_company
    <img src="/static/some_image.png"  >
</body>
</html>

图像和所有元素都放在边距内:

我尝试在side_packages/easy_pdf/templates/easy_pdf/base.html 中更改并添加一些边距选项:github link

        <style type="text/css">
            @page 

                // added
                margin: 0 !important;

                * 
                    margin: 0 !important;
                    padding: 0 !important;
                

                body 
                   margin: 0 !important;
                   padding: 0 !important;
                


                @frame 
                   margin: 0 !important;
                

                // changed
                size:  pagesize|default:"A4" ;
                margin-left: 0;
                margin-right: 0;
                margin-top: 0;
                margin-bottom: 0;

                @frame header 
                    -pdf-frame-content: page-header;
                    margin-top: 0;
                    margin-right: 0;
                    margin-bottom: 0;
                    margin-left: 0;
                

                @frame footer 
                    -pdf-frame-content: page-footer;
                    bottom: 0;
                    margin-left: 0;
                    margin-right: 0;
                    height: 0;
                
            
        </style>

但没有效果

问题

在哪里添加或更改 css 选项以从 pdf 中删除边距?

【问题讨论】:

【参考方案1】:

我找到了解决办法:

您需要在模板样式中添加以下内容:

<style>
    @page 
            * 
                margin: 0;
                padding: 0;
            
        
</style>

【讨论】:

以上是关于Django easy_pdf 删除边距的主要内容,如果未能解决你的问题,请参考以下文章

C# tablelayoutpanel 无法删除填充/边距

Angular 6 是不是正在删除默认元素边距?

如何从ggmap中删除边距

如何删除不希望保留超级视图继承边距的 tableView 单元格的顶部和左侧边距?

UIWebview 删除填充/边距

如何删除 PDF 文档边距