Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
DF是一種比較穩(wěn)定的電子文檔格式,而HTML則是一種通用的網(wǎng)頁(yè)格式,如何才能實(shí)現(xiàn)這兩種格式之間的互轉(zhuǎn)呢?
首先將網(wǎng)頁(yè)轉(zhuǎn)成PDF是相當(dāng)來(lái)說(shuō)比較簡(jiǎn)單的操作,而且只要我們對(duì)PDF格式比較熟悉,一定都知道PDF虛擬打印機(jī)可以將各種格式打印并以PDF格式保存,所以此方法也同樣適用于HTML轉(zhuǎn)換PDF,具體操作方法就是先打開(kāi)網(wǎng)頁(yè)后,在網(wǎng)頁(yè)任意處右擊并選擇“打印”
接著在左上角的打印設(shè)置頁(yè)面,將目標(biāo)打印機(jī)更改為電腦已有的PDF虛擬打印機(jī)或另存為PDF,再點(diǎn)擊保存并選擇文檔保存位置后就可以了。
而將PDF文件轉(zhuǎn)成網(wǎng)頁(yè)就需要使用一些工具了,先下載并安裝極速玩轉(zhuǎn)后,選擇PDF轉(zhuǎn)換中的PDF轉(zhuǎn)HTML進(jìn)入轉(zhuǎn)換頁(yè)面,并添加需要轉(zhuǎn)換的PDF文檔。
然后在左下角的輸出路徑設(shè)置好轉(zhuǎn)換后的HTML網(wǎng)頁(yè)保存文件夾后,點(diǎn)擊右下角的開(kāi)始轉(zhuǎn)換就可以了。
擬機(jī)為我們提供了一個(gè)無(wú)限可能的世界。在這個(gè)世界里,我們可以嘗試、學(xué)習(xí)、甚至犯錯(cuò),而不必?fù)?dān)心現(xiàn)實(shí)生活中的后果。Emacs,作為一款強(qiáng)大的文本編輯器,它的Org模式更是讓人們?cè)诮M織復(fù)雜信息時(shí)如魚得水。但是,當(dāng)我們嘗試將Org文件轉(zhuǎn)換為HTML格式時(shí),有時(shí)會(huì)遇到一個(gè)令人困惑的問(wèn)題:“source block missing language specification #include”。這是什么意思?它又該如何解決呢?
在深入探討之前,讓我們先來(lái)思考一個(gè)問(wèn)題:為什么我們要將Org文件轉(zhuǎn)換為HTML?答案可能各有不同,但一個(gè)共同點(diǎn)是,我們都希望能夠更好地分享和展示我們的工作。HTML作為一種廣泛支持的格式,能夠讓我們的內(nèi)容在不同的平臺(tái)上呈現(xiàn)出一致的效果。這就像是我們穿上了一件合身的外衣,讓內(nèi)在的價(jià)值得以外顯。
當(dāng)我們遇到“source block missing language specification #include”的提示時(shí),我們應(yīng)該怎么辦呢?首先,我們需要理解這個(gè)提示的含義。在Emacs的Org模式中,當(dāng)我們使用源代碼塊時(shí),通常需要指定語(yǔ)言類型,比如#+BEGIN_SRC python。這樣,Emacs就能夠知道如何高亮和格式化我們的代碼。但如果我們忘記了這一步,就會(huì)收到上述的提示。
解決這個(gè)問(wèn)題的方法其實(shí)很簡(jiǎn)單。我們只需要回到源代碼塊的開(kāi)始,確保正確地指定了語(yǔ)言類型。如果是包含在文件中的代碼,比如C語(yǔ)言的頭文件,我們可以使用#+INCLUDE: "file.h" src c這樣的語(yǔ)法來(lái)引入。
通過(guò)這個(gè)簡(jiǎn)單的修正,我們就能夠順利地將Org文件轉(zhuǎn)換為HTML,而不會(huì)再有任何阻礙。這個(gè)過(guò)程就像是我們?cè)谔摂M世界中解決了一個(gè)謎題,獲得了前進(jìn)的鑰匙。
并且可以嘗試以下幾種方法來(lái)解決:
方法一:添加語(yǔ)言規(guī)范
在 Org 文檔中,對(duì)于包含代碼塊的文本,需要添加語(yǔ)言規(guī)范,以便 Org-mode 正確地解析和轉(zhuǎn)換代碼。
具體步驟如下:
在代碼塊的開(kāi)頭,添加一行指示語(yǔ)言規(guī)范的注釋。例如,對(duì)于 C 語(yǔ)言代碼,可以添加以下注釋:
#lang c
再次嘗試將 Org 文檔轉(zhuǎn)換為 HTML。
方法二:使用 org-babel
org-babel 是 Org-mode 的一個(gè)擴(kuò)展包,可以用于將代碼塊轉(zhuǎn)換為各種格式,包括 HTML。
具體步驟如下:
安裝 org-babel 擴(kuò)展包。
M-x package-install RET org-babel
在 Org 文檔中,將代碼塊標(biāo)記為 babel 塊。例如,對(duì)于 C 語(yǔ)言代碼,可以使用以下標(biāo)記:
#+begin_src c#include <stdio.h>int main() { printf("Hello, world!\n"); return 0;}#+end_src
再次嘗試將 Org 文檔轉(zhuǎn)換為 HTML。
方法三:使用 org-html-export-filter
org-html-export-filter 是 Org-mode 的一個(gè)函數(shù),可以用于在導(dǎo)出 HTML 時(shí)自定義代碼塊的轉(zhuǎn)換。
具體步驟如下:
在 Emacs 配置文件中,添加以下代碼:
(defun my-org-html-export-filter (block) "自定義代碼塊的轉(zhuǎn)換。" (if (string-match-p "^#lang\s+c\s*$" (org-block-property block :language)) (org-html-export-filter-block-as-code block "c" "highlight") (org-html-export-filter-block-as-verbatim block)))(add-hook 'org-html-export-filter-alist 'my-org-html-export-filter)
再次嘗試將 Org 文檔轉(zhuǎn)換為 HTML。
以上三種方法都可以解決 Org 轉(zhuǎn)為 HTML 時(shí)提示“source block missing language specification #include<stdio.h>”的問(wèn)題。具體選擇哪種方法,可以根據(jù)自己的實(shí)際情況和需求來(lái)決定。
嘍,今天是一篇HTML to PDF速食指南。
Java 轉(zhuǎn)換 HTML 到PDF有許多類庫(kù),今天我們介紹一下第三方免費(fèi)的類庫(kù)OpenPDF。
OpenPDF是免費(fèi)的Java類庫(kù) ,遵從LGPL 和 MPL協(xié)議,所以基本上能夠可以隨意使用。OpenPDF是基于iTEXT的,目前來(lái)說(shuō)也是維護(hù)的比較好的Java操作PDF的開(kāi)源軟件。
話不多說(shuō),且看所需要的依賴,
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-core</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>com.openhtmltopdf</groupId>
<artifactId>openhtmltopdf-pdfbox</artifactId>
<version>1.0.6</version>
</dependency>
jsoup可以將html文件轉(zhuǎn)換成輸入流等,也可以遍歷html的DOM節(jié)點(diǎn),提取元素及樣式等。
本篇示例將以下html文件轉(zhuǎn)換成pdf
<html>
<head>
<style>
.center_div {
border: 1px solid #404e94;
margin-left: auto;
margin-right: auto;
background-color: #f6d0ed;
text-align: left;
padding: 8px;
}
table {
width: 100%;
border: 1px solid black;
}
th, td {
border: 1px solid black;
}
body,html,input{font-family:"msyh";}
</style>
</head>
<body>
<div class="center_div">
<h1>Hello java North!</h1>
<div>
<p>convert html to pdf.</p>
</div>
<div>
<table>
<thead>
<th>ROLE</th>
<th>NAME</th>
<th>TITLE</th>
</thead>
<tbody>
<tr>
<td>MARKSMAN</td>
<td>ASHE</td>
<td>THE FROST ARCHER</td>
</tr>
<tr>
<td>MAGES</td>
<td>ANNIE</td>
<td>THE DARK CHILD</td>
</tr>
<tr>
<td>射手</td>
<td>凱塔琳</td>
<td>皮城女警</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
以上html用瀏覽器打開(kāi)如下,亂碼是因?yàn)橹形淖煮w不識(shí)別,下面轉(zhuǎn)換的時(shí)候會(huì)加載對(duì)應(yīng)的字體來(lái)進(jìn)行轉(zhuǎn)換。
使用Java轉(zhuǎn)換HTML到PDF代碼如下:
public class HtmlToPDFOpenSource {
public static void main(String[] args) throws IOException {
HtmlToPDFOpenSource htmlToPDFOpenSource = new HtmlToPDFOpenSource();
htmlToPDFOpenSource.generatePdfByOpenhtmltopdf();
}
private void generatePdfByOpenhtmltopdf() throws IOException {
File inputHtml = new File("E:\\javaNorth\\java-study-note\\javaOpenSource\\src\\main\\resources\\test.html");
//加載html文件
Document document = Jsoup.parse(inputHtml, "UTF-8");
document.outputSettings().syntax(Document.OutputSettings.Syntax.html);
//引入資源目錄,可以單獨(dú)引入css,圖片文件等
String baseUri = FileSystems.getDefault()
.getPath("javaOpenSource\\src\\main\\resources")
.toUri().toString();
try (OutputStream os = new FileOutputStream("javaOpenSource\\src\\main\\resources\\testOpenLeagueoflegends1.pdf")) {
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.withUri("javaOpenSource\\src\\main\\resources\\testOpenLeagueoflegends1.pdf");
builder.toStream(os);
builder.withW3cDocument(new W3CDom().fromJsoup(document), baseUri);
//引入指定字體,注意字體名需要和css樣式中指定的字體名相同
builder.useFont(new File("javaOpenSource\\src\\main\\resources\\fonts\\msyh.ttf"),"msyh",1,BaseRendererBuilder.FontStyle.NORMAL, true);
builder.run();
}
}
}
使用Java代碼轉(zhuǎn)換成PDF如下(示例中使用了微軟雅黑中文字體):
上述html文件中增加如下外部樣式:
<link href="style.css" rel="stylesheet">
并在resources目錄下添加style.css文件,重新生成PDF文件如下。
本片介紹了使用OpenPDF將html文件轉(zhuǎn)換成PDF文件。同時(shí)也使用了自定義字體,外部樣式。但是以下幾點(diǎn)需要格外注意。
全部示例在此:https://github.com/javatechnorth/java-study-note/tree/master/javaOpenSource/src/main/java/pdf
文章來(lái)源:Java技術(shù)指北
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。