使用噩梦将html转换为pdf和django
nightmare_pdf的Python项目详细描述
django噩梦pdf
使用“噩梦”用django将html转换为pdf
要求
- python(2.7)(需要测试3.x)
- Django(1.10、1.9)(需要对以前的版本进行测试)
安装
使用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。
支持
如果您有问题,请让我们知道或提交拉取请求。
许可证
这个项目是根据麻省理工学院的许可证授权的。