我想创建一个管理操作来下载用户 pdf 文件 用户文件将上传到媒体目录中 什么和管理员应该能够下载任何文件 我尝试使用 pdfkit 让他下载文件,但我不能
> import pdfkit
>
> def downloadCV(self, request, queryset):
> projectUrl = str(queryset[0].cv)+''
> pdf = pdfkit.from_url(projectUrl, False)
> response = HttpResponse(pdf,content_type='application/pdf')
> response['Content-Disposition'] = 'attachment; filename="user_cv.pdf"'
Run Code Online (Sandbox Code Playgroud)
所以我的问题是让管理员下载 pdf 文件的最佳方式是什么
我尝试过这种方式
def downloadCV(self, request, queryset):
for x in queryset:
projectUrl = str(x.cv)+''
if projectUrl:
with open(projectUrl, 'r') as pdf:
response = HttpResponse(pdf,content_type='application/pdf')
response['ContentDisposition']='attachment;filename="user_cv.pdf"'
return response
pdf.closed
Run Code Online (Sandbox Code Playgroud)
但我一次只能下载一个文件,有办法一次下载多个 pdf 吗?
我在下面重现了我的问题:
我在网页上画了一个 210x297 的矩形
<!DOCTYPE html>
<html>
<style>
div.rectangle {
border: solid 1px;
width: 210mm;
height: 297mm;
}
</style>
<head>
</head>
<body>
<div class="rectangle">
<img/>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)我使用 Python 中的 pdfkit 将此 html 文档转换为 pdf
import pdfkit
options = {
'page-size':'A4',
'encoding':'utf-8',
'margin-top':'0cm',
'margin-bottom':'0cm',
'margin-left':'0cm',
'margin-right':'0cm'
}
pdfkit.from_file('test.html', 'test.pdf', options=options)
Run Code Online (Sandbox Code Playgroud)我获得了一个 pdf 文件,左上角有一个矩形,其大小大约小了 5 倍......
如果您能看看,我将不胜感激!
我使用 node.js 请求从 URL 获取 JPEG。然后我将图像转换为 base64 缓冲区并将其写入 pdf 文档:
request({ url: url, encoding: null }, function (error, response, body) {
if (!error && response.statusCode == 200) {
var img = new Buffer(body, 'base64');
pdf.image(img, 0, 0);
callback(error, body);
}
});
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
events.js:160
throw er; // Unhandled 'error' event
^
Error: stream.push() after EOF
at readableAddChunk (_stream_readable.js:156:17)
at PDFDocument.Readable.push (_stream_readable.js:134:10)
at PDFDocument._write (/Users/assafshamia/Freebird/node/utils/report_generator/node_modules/pdfkit/js/document.js:156:12)
at PDFReference.finalize (/Users/assafshamia/Freebird/node/utils/report_generator/node_modules/pdfkit/js/reference.js:81:21)
at PDFReference.finalize (/Users/assafshamia/Freebird/node/utils/report_generator/node_modules/pdfkit/js/reference.js:10:59)
at PDFReference.end (/Users/assafshamia/Freebird/node/utils/report_generator/node_modules/pdfkit/js/reference.js:74:21)
at JPEG.embed (/Users/assafshamia/Freebird/node/utils/report_generator/node_modules/pdfkit/js/image/jpeg.js:68:16)
at PDFDocument.image (/Users/assafshamia/Freebird/node/utils/report_generator/node_modules/pdfkit/js/mixins/images.js:34:15)
at addImage …Run Code Online (Sandbox Code Playgroud) 我能够呈现我的 pdf 文档的 PDFThumnailView。问题是它正在跳页。它显示第 1、3、5 页等...而不显示中间的页面。我的代码如下。
@IBOutlet weak var pdfView: PDFView!
@IBOutlet weak var pdfThumbnailView: PDFThumbnailView!
func setupThumbnailView() {
pdfThumbnailView.pdfView = pdfView
pdfThumbnailView.thumbnailSize = CGSize.init(width: thumbnailDimension, height: thumbnailDimension)
pdfThumbnailView.backgroundColor = sidebarBackgroundColor
}
Run Code Online (Sandbox Code Playgroud) 我有一个 PDF 套件,我想将文件保存为 A4 大小
这是我的代码
let newPagetxt = PDFPage(image:image!)
let apdf = PDFDocument()
apdf.insert(newPagetxt!, at:index)
apdf.documentAttributes!["Title"] = sampleFilenameTitle
apdf.documentAttributes!["Author"] = sampleFilenameAuthre
apdf.write(to: destination)
Run Code Online (Sandbox Code Playgroud)
如何使用一个标准类在 A4 中设置尺寸
我创建了一个 pdf 文档,并使用 PDFKit 将其显示在 PDFView 中。有没有直接的方法将文档中的页面显示为分页。
我想找到一种在 pdfkit 中换行的方法。
我尝试了字符串和 html 文件,但它没有按预期工作。
以下两个最小的示例不是为我提供“a”(换行符)“b”,而是生成“a b”。我将不胜感激你的帮助。
# from_string example (html example follows)
import pdfkit
options = {
'page-size': 'A4',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': 'UTF-8',
'quiet': ''
}
s1 = 'a \n b'
pdfkit.from_string(s1, 'out.pdf', options=options)
# html example
import pdfkit
s2 = """
a
b
"""
h1 = """<html>
<head></head>
<body><p>"""
h2 = """</p></body>
</html>"""
content = h1 + s2 + h2
f = open('out.html', 'w')
f.write(content)
f.close()
options = {
'page-size': 'A4', …Run Code Online (Sandbox Code Playgroud) 我试图了解如何让 PDF Kit 在 React JS 中工作。
我的简单要求是使用 ReactJS 和 PDFKit 在浏览器中渲染文件。
查看教程,参考了 PDFKit 可以在浏览器中工作的一些选项,但是尚不清楚这将如何应用于 React JS 的世界,特别是基于 Create React App 的项目......
http://pdfkit.org/demo/browser.html
https://www.npmjs.com/package/pdfkit#browser-usage
有没有人遇到过基于 React JS 和 PDFKit 的 Create React App 的工作示例?
谷歌今晚似乎没有给出答案。
我正在尝试将 html 模板代码中的 pdf 放在一起。我遇到的问题是我尝试过的 html-pdf 转换器没有正确格式化 css,我猜它们还与 css flex-box 不兼容。
我研究了两种方法:
在 Node.js 上使用 html-pdf 包
在python中使用jinja2、pdfkit和wkhtmltopdf
这两种方法都允许我对 html 进行模板化并从 html 动态构建 pdf,但 css 转换不能 100% 工作(css flex-box 失败)。
关于可以处理css flex-box的html到pdf转换器的任何想法?或者,有没有人知道上述方法的任何修复程序,以便他们可以处理 css flex-box?只想从 css flex-box 样式的 html 制作 pdf。
谢谢!
请注意这个问题是之前提出的问题的扩展:How to make Images/PDF of Timetable using Python
我正在开发一个基于算法生成随机时间表的程序。对于该程序的最终输出,我需要将时间表存储在 PDF 文件中。
有多个部分,每个部分必须有自己的时间表/时间表。每个部分可以有多个课程,这些课程的讲座将根据算法分配在周一至周五的不同时段。对于我的时间表,
作为示例,我在下面创建了一个字典,其中键代表部分,项目具有大小为 5x5 的二维数组。该二维数组的每个索引都包含讲座将在该时段进行的课程详细信息。
CS-3B : [['', '', 'DS ', '', 'COaAL '], ['', 'COaAL ', '', 'DS ', 'OOP '], ['DS-L ', 'DS-L ', 'OOP-L ', 'OOP-L ', 'FoM '], ['COaAL-L ', 'COaAL-L ', 'OOP ', '', ''], ['', 'FoM ', 'DE ', '', 'DE ']]
SE-3A : [['', 'OOP-L …Run Code Online (Sandbox Code Playgroud) pdfkit ×10
ios ×3
swift ×3
python ×2
css ×1
django ×1
django-admin ×1
html ×1
html-pdf ×1
html-to-pdf ×1
ios11 ×1
javascript ×1
jinja2 ×1
node-pdfkit ×1
node.js ×1
pagination ×1
pdf ×1
pdfview ×1
python-2.7 ×1
python-3.x ×1
reactjs ×1
swift4 ×1
timetable ×1
wkhtmltopdf ×1