使用噩梦将html转换为pdf和django

nightmare_pdf的Python项目详细描述


nightmare-pdf v0.1.10 on PyPiMIT licenseStable

django噩梦pdf

使用“噩梦”用django将html转换为pdf

要求

  • python(2.7)(需要测试3.x)
  • Django(1.10、1.9)(需要对以前的版本进行测试)

依赖性

这个django应用程序依赖于 Nightmare你需要 首先使用npm

安装

npm install nightmare

安装

使用pip

安装

pip install nightmare_pdf

nightmare_pdf添加到已安装的应用程序设置中。

INSTALLED_APPS = (
    ...
    'nightmare_pdf',
)

创建一个目录来保存由噩梦创建的pdf文件,默认为 pdf_temp

mkdir pdf_temp

示例

从url生成pdf并将其保存到数据库,或将其检索为 contentfile,或将其返回到httpresponse中:

from nightmare_pdf.generators import PDFGenerator

pdf = PDFGenerator(url="https://github.com/charlesthk/django-nightmare-pdf",

# Save it to database and retrieve a PdfDoc Object (database):
pdf.save(
        filename='nightmare_pdf',
        title="nightmare_pdf on github",
        description="Convert HTML to pdf with django using nightmare")

# Get the PDf as a Django ContentFile named 'my_pdf_file.pdf' :
pdf_content_file = pdf.get_content_file('my_pdf_file')

# Return a Django HttpResponse with the PDF Attached named 'my_pdf_file.pdf':
return pdf.get_http_response('my_pdf_file')

PDFGenerator选项

PDFGenerator类接受以下参数:

  • url[必需]
  • timeout[可选]默认值为1000,定义 打开并通过“噩梦”呈现URL
  • 页面大小[可选]默认为“A4”,接受选项为A3、A4, A5,法律、信件或小报
  • 横向[可选]默认为0,定义是否在 横向模式
  • 打印背景[可选]默认为1,定义是否打印 背景
  • margins_type[可选]默认为1,定义要使用的边距。 默认边距使用0,无边距使用1,最小边距使用2。
  • 脚本[可选]默认为默认渲染脚本,定义 要使用的渲染脚本。
  • temp_dir[可选]默认为default_temp_dir,定义 要使用的临时目录。

用于保存pdf的模型

使用save(filename, title='',description='')方法时 PDFGenerator,使用以下模型:

class PdfDoc(models.Model):
    """
    Store each generated pdf
    """
    title = models.CharField(verbose_name=_("Title"), max_length=255, blank=True)
    description = models.TextField(verbose_name=_("Description"), blank=True)
    document = models.FileField(verbose_name=_("Document PDF"), upload_to=pdf_settings.UPLOAD_TO)
    created_at = models.DateTimeField(auto_now=False, auto_now_add=True, verbose_name=_('Creation'))
    updated_at = models.DateTimeField(auto_now=True, auto_now_add=False, verbose_name=_('Update'))

设置

将设置添加到主django设置文件中。设置如下 默认设置为:

NIGHTMARE_PDF = {
    'UPLOAD_TO': 'pdfs',
    'NODE_PATH': 'node',
    'DEFAULT_RENDER_SCRIPT': os.path.join(NIGHTMARE_PDF_DIR, 'render_pdf.js'),
    'DEFAULT_TEMP_DIR': os.path.join(settings.BASE_DIR, 'pdf_temp')
}

UPLOAD_TO

定义保存PDF时要使用的目录或函数, 默认为pdfs

NODE_PATH

定义节点二进制文件的路径,默认为node

DEFAULT_RENDER_SCRIPT

定义默认使用哪个渲染脚本,默认为 render_pdf.js在包内。

DEFAULT_TEMP_DIR

定义目录,用于由Nearmatry临时生成的PDF。 默认为pdf_temp

支持

如果您有问题,请让我们知道或提交拉取请求。

许可证

这个项目是根据麻省理工学院的许可证授权的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓如何在java字符串中获取RATE的值   java ANT在哪里输出编译器错误?   在java中,while循环在何处启动对象   javacom。谷歌。格森。内部的LinkedTreeMap无法强制转换到我的类   java单选按钮。isSelected()方法未返回正确的响应   嵌入式系统中applet中的java相对码基字段   如何在eclipse中将Java应用程序附加到jvm探查器?   java为什么Android应用程序崩溃?   在java中拖放上传后保持文件夹结构   爪哇多领导人选举问题   java Springs RestTemplate如何处理postForEntity()中的错误响应   Java如何用前导零递增整数字符串?   java Android将文本作为图像共享给其他应用程序   Java搜索替换   java isDirectory()不适用于UNIX目录   java我们可以得到显示测试类是否通过或失败的TestNG报告吗   Java类对象排序和分组   简单Java幂递归   java在处理MethodArgumentNotValidException时如何访问请求对象?