『壹』 ps怎麼保存多頁pdf
1、通過Photoshop打開你要編輯的多頁pdf文件。顯示。
2、按住 shift鍵, 選中此pdf下的所有頁面(當前測試pdf下有2頁),然後點擊「 確定 」
3、打開後,如果你的pdf文件名是 test.pdf ,那麼你會看到類似 test-1、test-2 的打開文件。
4、處理好後,點擊 「 文件 」菜單,依次選取 「 自動 」、「 PDF演示文稿 」,打開。
5、選中「 添加打開的文件 」,你會看到之前打開的2個頁面都出現了,此時可以拖動進行調整頁面的次序。點擊「 存儲 」
『貳』 如何用java實現導出PDF格式的文檔
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.*; import com.itextpdf.text.pdf.PdfWriter; public class PdfTest { public static void main(String[] args) throws Exception { Document pdfDoc = new Document(); // 將要生成的 pdf 文件的路徑輸出流 FileOutputStream pdfFile = new FileOutputStream(new File("F:/study/test/firstPdf.pdf")); // pdf 文件中的一個文欄位落 Paragraph paragraph = new Paragraph("My first PDF file with an image ..."); Image image = Image.getInstance("F:/study/test/洛克 李.jpg"); // 用 Document 對象、File 對象獲得 PdfWriter 輸出流對象 PdfWriter.getInstance(pdfDoc, pdfFile); pdfDoc.open(); // 打開 Document 文檔 // 添加一個文欄位落、一張圖片 pdfDoc.add(paragraph); pdfDoc.add(image); pdfDoc.close(); } }
『叄』 PDF總是崩潰
可能你使用的PDF軟體有問題,重裝PDF應用軟體,或者換一個軟體試試。因不知道你是用的PDF軟體到底是哪一個,目前只能給你這點建議。如有可能請詳述崩潰的現象。
『肆』 Python利器:如何處理PDF表格數據
大家好,我是Peter~
在很多情況下,我們都需要處理PDF格式的文件。尤其當我們遇到PDF表格數據需要進行提取,真的是一個令人頭疼的問題。
因為PDF文件不能像Word那樣直接復制,即使復制了再黏貼也可能會出現格式排版錯亂甚至亂碼問題。如何從一個PDF文件提取出表格數據?本文提供兩個解決方案:
首先提供的一種方法是從文字 PDF 中提取表格信息的工具:Camelot,它能夠直接將大部分表格轉換為 Pandas 的 Dataframe。
更多的詳細信息,請參考項目地址: https://github.com/camelot-dev/camelot
camelot的安裝有多種方式。如果有報錯,網上一般有解決方式:
1、通過conda安裝
2、使用pip進行安裝
3、通過GitHub進行安裝
首先將項目復制到本地:
然後進入文件中進行安裝:
下面通過一個案例來講解如何使用camelot。假設我們現在有一個只有一頁的PDF文件test.pdf:
1、先讀取文件
導出成csv格式的數據(方式1)
查看tables的相關信息:
導出方式2:
將數據轉換成DataFrame:
tabula的功能比camelot更加強大,可以同時對多個表格數據進行提取。項目的具體地址請參考: https://github.com/chezou/tabula-py
tabula的安裝是非常簡單的:
安裝之後檢驗這個庫是否安裝成功:
通過tabula這個庫來讀取PDF文件:
然後我們發現列表中唯一的一個元素就是dataframe:
將讀取到的數據輸出成CSV格式的文件:
上面讀取的PDF文件是比較簡單的,只有一頁,而且剛好是一個很標準的表格形式的數據,下面看一個比較復雜的例子:
下面是第一頁,第一列可以看成是索引:
在第二頁中有兩份表格,而且中間有很多的空白行:
第三頁的數據比較標准:
這3頁是在同一個PDF文件中,這3頁是在同一個PDF文件中,這3頁是在同一個PDF文件中
上面的紅色提示中我們看到:當沒有指定pages參數的時候,只會默認讀取第一頁的數據,所以列表的長度為1。
轉成dataframe後將原來的索引變成新的一列 (部分數據)
通過pages來讀取全部數據:
通過指定pages="all":
同時獲取兩個表格的數據:
通過area參數來指定:
刪除在讀取的表格中我們不需要的欄位信息
可以將得到的數據輸出成不同格式的文件,以json格式為例:
我們可以看到
『伍』 php讀取pdf文檔內容,並分頁顯示
<?php(http://hounwang.com/lesson.html)
// 創建一個新的pdf文檔句柄
$pdf = pdf_new();
// 打開一個文件
pdf_open_file($pdf, "pdftest.pdf");
// 開改裂始一個新頁面(a4)
pdf_begin_page($pdf, 595, 842);
// 得到並使用字體對象
$arial = pdf_findfont($pdf, "arial", "host", 1);
pdf_setfont($pdf, $arial, 10);
// 輸出文字
pdf_show_xy($pdf, "雀殲此this is an exam of pdf documents, it is a good lib,",50, 750);
pdf_show_xy($pdf, "if you like,please try yourself!", 50, 730);
echo "<a href=m.php?page=1>首頁<頃迅/a> ";
if($page!=1){
echo "<a href=m.php?page=".($page-1).">上一頁</a> ";
}
if($page<$page_count){
echo "<a href=m.php?page=".($page+1).">下一頁</a> ";
}
echo "<a href=m.php?page=".$page_count.">尾頁</a>";
// 結束一頁
pdf_end_page($pdf);
// 關閉並保存文件
pdf_close($pdf);
?>更多問題到問題求助專區http://bbs.hounwang.com/
『陸』 TCPDF如何將生成的PDF文件保存到伺服器
functioncreatePdfFile($frontData)
{
/*新建一個pdf文件:
Orientation:orientation屬性用來設置文檔列印格式是「Portrait」還是「Landscape」。 Landscape為橫式列印,Portrait為縱向列印
Unit:設置頁面的單位。pt:點為單位,mm:毫米為單位,cm:厘米為單位,in:英尺為單位
Format:設置列印格式,一般設置為A4
Unicode:為true,輸入的文本為Unicode字元文本
Encoding:設置編碼格式,默認為utf-8
Diskcache:為true,通過使用文件系統的臨時緩存數據減少RAM的內存使用。 */
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,true, 'UTF-8', false);
//設置文件信息
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor("jmcx");
$pdf->SetTitle("pdf test");
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
//刪除預定義的列印 頁眉/頁尾
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
//設置默認等寬字體
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
/*設置頁面邊幅:
Left:左邊幅
Top:頂部邊幅
Right:右邊幅
Keepmargins:為true時,覆蓋默認的PDF邊幅。 */
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP,PDF_MARGIN_RIGHT);
/*設置單元格的邊距:
Left:左邊距
Top:頂部邊距
Right:右邊距
Bottom:底部邊距。*/
$pdf->setCellPaddings(0, 0, 0, 0);
//GetX獲得當前的橫坐標,GetY獲得當前的縱坐標。
// $pdf->GetX();
// $pdf->GetY();
/*移動坐標。SetX移動橫坐標。 SetY,橫坐標自動移動到左邊距的距離,然後移動縱坐標。SetXY,移動橫坐標跟縱坐標:
X:橫坐標,可設為$pdf->GetX()+數字
Y:縱坐標,可設為$pdf->GetY()+數字
Rtloff:true,左上角會一直作為坐標軸的原點
Resetx:true,重設橫坐標。 */
// $pdf->SetX($x, $rtloff=false);
// $pdf->SetY($y, $resetx=true, $rtloff=false);
// $pdf->SetXY($x, $y, $rtloff=false)
/*設置線條的風格:
Width:設置線條粗細
Cap:設置線條的兩端形狀
Join:設置線條連接的形狀
Dash:設置虛線模式
Color:設置線條顏色,一般設置為黑色,如:array(0, 0, 0)。*/
$pdf->SetLineStyle(array('width' => 0.2, 'cap' => 'butt', 'join' => 'miter', 'dash' => '0', 'color' => array(0, 0,0)));
/*畫一條線:
x1:線條起點x坐標
y1:線條起點y坐標
x2:線條終點x坐標
y2:線條終點y坐標
style:SetLineStyle的效果一樣
*/
// $pdf->Line($x1, $y1, $x2, $y2, $style=array());
/*執行一個換行符,橫坐標自動移動到左邊距的距離,縱坐標換到下一行:
H:設置下行跟上一行的距離,默認的話,高度為最後一個單元格的高度
Cell:true,添加左或右或上的間距到橫坐標。 */
// $pdf->Ln($h='', $cell=false);
//設置自動分頁符
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//設置圖像比例因子
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//設置一些語言相關的字元串
// $pdf->setLanguageArray("xx");
/*設置字體:
字體類型(如helvetica(Helvetica)黑體,times (Times-Roman)羅馬字體)、風格(B粗體,I斜體,underline下劃線等)、字體大小 */
$pdf->SetFont('times', 'I', 20);
/*增加一個頁面:
Orientation:orientation屬性用來設置文檔列印格式。 Landscape為橫式列印,Portrait為縱向列印。
Format:設置此頁面的列印格式。
Keepmargins:true,以當前的邊幅代替默認邊幅來重寫頁面邊幅。
Tocpage:true,所添加的頁面將被用來顯示內容表。*/
$pdf->AddPage();
/*設置單行單元格:
W:設置單元格的寬
H:設置單元格的高
Text:單元格文本
Border:設置單元格的邊框。0,無邊框,1,一個框,L,左邊框,R,右邊框,B, 底邊框,T,頂邊框,LTRB指四個邊都顯示
Ln:0,單元格後的內容插到表格右邊或左邊,1,單元格的下一行,2,在單元格下面
Align:文本位置。L,左對齊,R,右對齊,C,居中,J,自動對齊
Fill:填充。false,單元格的背景為透明,true,單元格必需被填充
Link:設置單元格文本的鏈接。*/
$pdf->Cell(0, 10, 'test', 1, 1, 'C');
/*設置多行單元格。注意跟Cell的參數位置有些差別,Cell是用來輸出單行文本的,MultiCell就能用來輸出多行文本
W:設置多行單元格的寬
H: 設置多行單元格的單行的高
Text:文本
Border:邊框
Align:文本位置
Fill:填充
Ln:0,單元格後的內容插到表格右邊或左邊,1,單元格的下一行,2,在單元格下面
X:設置多行單元格的行坐標
Y:設置多行單元格的縱坐標
Reseth:true,重新設置最後一行的高度
Stretch:調整文本寬度適應單元格的寬度
Ishtml:true,可以輸出html文本,有時很有用的
Autopadding:true,自動調整文本與單元格之間的距離
Maxh:設置單元格最大的高度
Valign:設置文本在縱坐標中的位置,T,偏上,M,居中,B,偏下
Fillcell:自動調整文本字體大小來適應單元格大小。 */
// $pdf->MultiCell($w, $h, $txt, $border=0, $align='J',$fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0,$ishtml=false, $autopadding=true, $maxh=0, $valign='T', $fitcell=false);
// setCellHeightRatio設置單元格行高,可以引用此函數調整行與行的間距。SetLineWidth設置線條寬度。
// $pdf->setCellHeightRatio($h);
// $pdf->SetLineWidth($width);
/*在PDF中,插入圖片,參數列表如下;
File:圖片路徑。
X:左上角或右上角的橫坐標。
Y:左上角或右上角的縱坐標。
W:設置圖片的寬度,為空或為0,則自動計算。
H:設置圖片的高度,為空或為0,則自動計算。
Type:圖片的格式,支持JPGE,PNG,BMP,GIF等,如果沒有值,則從文件的擴展名中自動找到文件的格式。
Link:圖片鏈接。
Align:圖片位置。
Resize:true,調整圖片的大小來適應寬跟高;false,不調整圖片大小;2,強制調整。
Dpi:以多少點每英寸來調整圖片大小。
Palign:圖片位置,L,偏左,C,居中,R,偏右
Imgmask:true,返回圖像對象。
Border:邊框。
Fitbox:調整適合大小。
Hidden:true,隱藏圖片。
Fitonpage:如果為true,圖像調整為不超過頁面尺寸。 */
$pdf->Image('../img/test.png');
/*輸出HTML文本:
Html:html文本
Ln:true,在文本的下一行插入新行
Fill:填充。false,單元格的背景為透明,true,單元格必需被填充
Reseth:true,重新設置最後一行的高度
Cell:true,就調整間距為當前的間距
Align:調整文本位置。 */
$pdf->writeHTML("<div><label>hah<strong>aha</strong></label><br/></div>");
/*用此函數可以設置可選邊框,背景顏色和HTML文本字元串來輸出單元格(矩形區域)
W:設置單元格寬度。0,伸展到右邊幅的距離
H:設置單元格最小的高度
X:以左上角為原點的橫坐標
Y:以左上角為原點的縱坐標
Html:html文本
Border:邊框
Ln:0,單元格後的內容插到表格右邊或左邊,1,單元格的下一行,2,在單元格下面
Fill:填充
Reseth:true,重新設置最後一行的高度
Align:文本的位置
Autopadding:true,自動調整文本到邊框的距離。 */
$pdf->writeHTMLCell();
/*輸入PDF文檔 :
Name:PDF保存的名字
Dest:PDF輸出的方式。I,默認值,在瀏覽器中打開;D,點擊下載按鈕, PDF文件會被下載下來;F,文件會被保存在伺服器中;S,PDF會以字元串形式輸出;E:PDF以郵件的附件輸出。 */
return $pdf->Output("test001.pdf", "F");
}