我目前正在使用Flask
構建一個web應用程序。我的主管要求一個功能應該是將當前頁面保存爲PDF(用於打印)。爲此,我使用pdfkit
。在任何人提出使用weasyprint
之前,我試圖安裝它2小時無濟於事,所以我放棄了這一點。我正在使用Bootstrap
css和它的JavaScript來讓應用程序看起來更愉快一點。pdfkit不加載css和JavaScript
我使用下面的文件結構(如提出了一個教程,Flask
)
+-- name_of_app
| +-- static
| +-- css
| +-- css files
| +-- js
| +-- javascript files
| +-- templates
| +-- .html templates
| +-- __init__.py
| +-- config.py
| +-- forms.py
| +-- views.py
+-- run.py
只試着pdfkit
出來,我生成PDF每次我在所有的功能生成的頁面時,即時間這些路由在views.py
。所有頁面都基於以下模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="static\css\bootstrap.css" rel="stylesheet" media="screen">
<link href="static\css\bootstrap-theme.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="static\js\bootstrap.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% if title %}
<title>{{ title }} - Timeseries Project</title>
{% else %}
<title>Welcome to the Timeseries Project</title>
{% endif %}
</head>
<body>
<div class="navbar navbar-default">
<div class="navbar-inner">
<a class="navbar-brand active" href="/">Home</a>
<a class="navbar-brand" href="/">Save as PDF</a>
</div>
</div>
{% block content %}{% endblock %}
</body>
</html>
使用提供的css和JS文件加載的網頁非常漂亮。然而,pdfkit
輸出以下警告因此
Warning: Failed to load file:///C:/Users/my_user/AppData/Local/Temp/static/css/bootstrap.css (ignore)
Warning: Failed to load file:///C:/Users/my_user/AppData/Local/Temp/static/css/bootstrap-theme.css (ignore)
Warning: Failed to load file:///C:/Users/my_user/AppData/Local/Temp/static/js/bootstrap.js (ignore)
我試圖解決的問題是:我如何獲得pdfkit
其中的一個方法被執行的文件夾中尋找static
(即views.py
),和不在AppData
?
是一個只打印樣式表不是一種選擇,由於應用程序的性質是什麼? – Blazemonger
嗯,不是很確定什麼「只打印樣式表」意味着我害怕,你能否詳細說明一下? (我沒有網絡開發經驗) – Tingiskhan
http://www.smashingmagazine.com/2011/11/how-to-set-up-a-print-style-sheet/ – Blazemonger