gpt4 book ai didi

javascript - 在 Django 中打印 PDF 文件

转载 作者:行者123 更新时间:2023-11-28 17:49:57 25 4
gpt4 key购买 nike

我想在我的 Django 项目中创建一些东西,将模型对象的 FileField 中的 PDF 文件物理打印到纸上。就像这样:

class PDF(models.Model):
pdf = models.FileField(upload_to='pdffiles/', blank=True, null=True}

我想做的主要事情是创建一个链接,使用 Javascript 创建一个弹出窗口,其中包含一个输入字段,用户可以在其中输入对象的 FileField 中的 PDF 名称,以及一个显示“打印”的按钮,该按钮会触发物理打印打印功能(包括打开打印对话框)。我应该使用表单或 View 来实现这个功能吗?如果我应该使用Javascript来激活打印功能,我该怎么做?谢谢。

编辑:我正在考虑使用 print.js。有人可以告诉我如何在我的 Django 项目中实现 print.js 吗?我需要插入 Git 存储库中的哪些文件以及如何将它们链接到我的模板?

最佳答案

如果我遵循此Question ,我认为你可以使用这个解决方案;

在你的views.py

from django.conf import settings
from django.shortcuts import get_object_or_404
from yourapp.models import PDF

def pdf_viewer(request, pk):
obj = get_object_or_404(PDF, pk=pk)
pdf_full_path = settings.BASE_DIR + obj.pdf.url
with open(pdf_full_path, 'r') as pdf:
response = HttpResponse(pdf.read(), content_type='application/pdf')
response['Content-Disposition'] = 'filename=%s' % obj.pdf.name
return response
pdf.closed

然后urls.py;

from django.conf.urls import url
from yourapp.views import pdf_viewer

urlpatterns = [
url(r'^pdf-viewer/(?P<pk>\d+)/$', pdf_viewer, name='pdf_viewer_page'),
]

在模板内部怎么样?

<button class="show-pdf">Show PDF</button>
<div class="pdf-wrapper">
<iframe id="pdf-iframe" frameborder="0" allowfullscreen></iframe>
</div>

<script>
// you can using jQuery to load the pdf file as iframe.
$('.show-pdf').click(function () {
var src = '{% url "pdf_viewer_page" pk=obj.id %}';
var iframe = $("#pdf-iframe");

iframe.attr({'width': 560, 'height': 300});
// iframe.attr('src', src); // to load the pdf file only.

// to load and auto print the pdf file.
iframe.attr('src', src).load(function(){
document.getElementById('pdf-iframe').contentWindow.print();
});
return false;
});
</script>

But makesure in this template if you try with {{ obj.pdf.url }} should return string of eg: '/media/to/file.pdf'

或更简单的(整页)

<a href='{% url "pdf_viewer_page" pk=obj.id %}' target="_blank">Show PDF on new tab</a>

关于javascript - 在 Django 中打印 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com