3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

制作PDF文件全攻略

發(fā)布時(shí)間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 制作PDF文件全攻略 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前 言
麗水市汽車運(yùn)輸集團(tuán)有限公司信息中心 茍安廷
PDF文件是目前比較流行的電子文檔格式,在辦公自動(dòng)化(OA)等軟件的開發(fā)中,經(jīng)常要用到該格式,但介紹如何制作PDF格式文件的資料非常少,在網(wǎng)上搜來搜去,都轉(zhuǎn)貼的是同一段“暴力”破解的方法,代碼片斷如下:

StreamWriter pPDF=new StreamWriter(filePath);

ArrayList xRefs=new ArrayList();

float yPos =0f;

long streamStart=0;

long streamEnd=0;

long streamLen =0;

string strPDFMessage=null;

//PDF文檔頭信息

strPDFMessage="%PDF-1.1\n";

ConvertToByteAndAddtoStream(strPDFMessage);



xRefs.Add(mPDF.Length);

strPDFMessage="1 0 obj\n";

ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="<< /Length 2 0 R >>\n";

ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="stream\n";

ConvertToByteAndAddtoStream(strPDFMessage);

……

看了上面的制作辦法,我眼鏡都摔壞了三幅,如果用上面這樣原始的辦法能制作出滿意的PDF文件,那一定是天才所為。后來,我從一個(gè)網(wǎng)站(網(wǎng)址:http://itextsharp.sourceforge.net/index.html)中看到了專門制作PDF文件的控件的介紹,暗喜之余,立馬下載試驗(yàn),果然非常輕松地制作出了想要的PDF文件,因?yàn)榫W(wǎng)站為英文,內(nèi)容又多,讀起來非常費(fèi)力,在解決了自己的問題后,看到許多網(wǎng)友還在為PDF文件制作而郁悶,遂決定將該內(nèi)容翻譯為中文,由于本人英語水平一般,許多地方又晦澀難懂,故翻譯質(zhì)量不是很滿意,敬請(qǐng)斧正,但大部分能看懂。本文的目的一是解決部分網(wǎng)友的燃眉之急,二是拋磚引玉,如果哪位仁兄愿意將該網(wǎng)站中的內(nèi)容準(zhǔn)確翻譯出來,則是天下之大幸。

要用本文的方法生成PDF文件,需要兩個(gè)控件:itextsharp.dll和ICSharpCode.SharpZipLib.dll,由于示例代碼實(shí)在太多,我將代碼全部整理出來,放在另外一個(gè)文件“示例代碼.doc”中,所有這些資源,我均放在了本人的ftp站點(diǎn)(ftp://202.107.251.26)上的“Pdf文件制作全攻略”文件夾中(文件夾中另外兩個(gè)rar壓縮文件為兩個(gè)控件的源代碼,供大家學(xué)習(xí)研究使用),你可以到這里下載相應(yīng)的資源,或者直接到原網(wǎng)站下載。

為便于調(diào)試和敘述,所有例子均為DOS控制臺(tái)程序,windows程序使用方法完全一樣,按照下面的步驟創(chuàng)建一個(gè)可調(diào)試的項(xiàng)目:

1、 打開VS2003;

2、 單擊菜單“文件”→“新建”→“項(xiàng)目”,在項(xiàng)目類型中選擇“Visual C#項(xiàng)目”,在模板中選擇“控制臺(tái)應(yīng)用程序”,輸入文件名稱如“MakePdf”,指定好存放路徑,然后點(diǎn)確定按鈕;

3、 在“解決方案資源管理器”中右鍵單擊“引用”,從彈出的菜單中選擇“添加引用”,在“.NET”選項(xiàng)夾中選擇“瀏覽”,添加前面提到的兩個(gè)應(yīng)用,如下圖:


4、 在代碼窗口頂部添加兩個(gè)引用:

using iTextSharp.text;

using iTextSharp.text.pdf;

至此,準(zhǔn)備工作完畢。



第一部分 iText的簡單應(yīng)用
第一章 創(chuàng)建一個(gè)Document
利用iText五步創(chuàng)建一個(gè)PDF文件:helloword。

第一步,創(chuàng)建一個(gè) iTextSharp.text.Document對(duì)象的實(shí)例:

Document document = new Document();

第二步,為該Document創(chuàng)建一個(gè)Writer實(shí)例:

PdfWriter.getInstance(document, new FileStream("Chap0101.pdf", FileMode.Create));

第三步,打開當(dāng)前Document

document.Open();

第四步,為當(dāng)前Document添加內(nèi)容:

document.Add(new Paragraph("Hello World"));

第五步,關(guān)閉Document

document.Close();

完整的代碼見示例代碼0101。

在例中,不難看出,制作一個(gè)PDF文件是非常簡單的。

注:如果你將例中“document.Add(new Paragraph("Hello World"));”中的字符串“Hello Word”換成中文,如“這是我的第一個(gè)PDF文件”,產(chǎn)生的結(jié)果一定讓你大失所望,因?yàn)樯傻腜DF文件中并沒有將中文顯示出來,不要擔(dān)心,在第9章中要專門講解字體問題,中文顯示也就迎刃而解了,如果不能正確顯示中文,也就沒有必要翻譯本文了。

下面對(duì)這幾步做詳細(xì)介紹。

第一步 創(chuàng)建一個(gè)Document實(shí)例:
iTextSharp.text.Document-object共有三個(gè)構(gòu)造函數(shù):

public Document();

public Document(Rectangle pageSize);

public Document(Rectangle pageSize,

int marginLeft,

int marginRight,

int marginTop,

int marginBottom);

第一個(gè)構(gòu)造函數(shù)以A4頁面作為參數(shù)調(diào)用第二個(gè)構(gòu)造函數(shù),第二個(gè)構(gòu)造函數(shù)以每邊36磅頁邊距為參數(shù)調(diào)用第三個(gè)構(gòu)造函數(shù)

u 頁面尺寸:

你可以通過指定的顏色和大小創(chuàng)建你自己的頁面,示例代碼0102創(chuàng)建一個(gè)細(xì)長的淺黃色背景的頁面:

Rectangle pageSize = new Rectangle(144, 720);

pageSize.BackgroundColor = new Color(0xFF, 0xFF, 0xDE);

Document document = new Document(pageSize);

通常,你不必創(chuàng)建這樣的頁面,而可以從下面頁面尺寸中選擇:

A0-A10, LEGAL, LETTER, HALFLETTER, _11x17, LEDGER, NOTE, B0-B5, ARCH_A-ARCH_E, FLSA 和 FLSE

大多數(shù)情況下使用縱向頁面,如果希望使用橫向頁面,你只須使用rotate()函數(shù):

Document document = new Document(PageSize.A4.rotate());

詳細(xì)代碼見示例代碼0103。

u 頁邊距:

當(dāng)創(chuàng)建一個(gè)文件時(shí),你還可以定義上、下、左、右頁邊距:

Document document = new Document(PageSize.A5, 36, 72, 108, 180);

在示例代碼0104中你可以看到該文檔有一個(gè)0.5英寸的左邊距和1英寸的右邊距,上邊距為1.5英寸,下邊距為2.5英寸。

說明:

當(dāng)創(chuàng)建一個(gè)矩形或設(shè)置邊距時(shí),你可能希望知道該用什么度量單位:厘米、英寸或象素,事實(shí)上,默認(rèn)的度量系統(tǒng)以排版單位磅為基礎(chǔ)得出其他單位的近似值,如1英寸=72磅,如果你想在A4頁面的PDF中創(chuàng)建一個(gè)矩形,你需要計(jì)算以下數(shù)據(jù):

21 厘米 / 2.54 = 8.2677 英寸

8.2677英寸* 72 = 595 磅

29.7 厘米 / 2.54 = 11.6929 英寸

11.6929英寸* 72 = 842 磅

默認(rèn)邊距為36磅即半英寸。

如果你修改了頁面尺寸,僅僅影響到下一頁,如果你修改了頁邊距,則影響到全部,故慎用。

關(guān)于頁面的初始值,請(qǐng)參考第三步。

第二步 創(chuàng)建Writer實(shí)例
一旦創(chuàng)建了document,我們可以創(chuàng)建該文檔的多個(gè)Writer的實(shí)例,所有這些Writer實(shí)例均繼承自抽象類“iTextSharp.text.DocWriter”。

同時(shí)還有另外一種情況,你可以用iTextSharp.text.pdf.PdfWriter產(chǎn)生文檔PDF文件,如果你想創(chuàng)建一個(gè)TeX文檔,你可以使用iTextSharp.text.TeX.TeXWriter包。

Writer類的構(gòu)造函數(shù)是私有的,你只能通過下面的方法創(chuàng)建一個(gè)實(shí)例:

public static xxxWriter getInstance(Document document, Stream os);(xxx 是 Pdf 或 Xml)

你可以通過下面的方法創(chuàng)建一個(gè)實(shí)例:

PdfWriter writer = PdfWriter.getInstance(document, new FileStream("Chap01xx.pdf"));

但是你幾乎永遠(yuǎn)不會(huì)用到Writer實(shí)例(除非你想創(chuàng)建高級(jí)PDF或者希望用一些非常特殊的函數(shù),如ViewerPreferences 或 Encryption)。所以通過下面的辦法得到實(shí)例已經(jīng)足夠了: PdfWriter.getInstance(document, new FileStream("Chap01xx.pdf"));

在第一步中創(chuàng)建一個(gè)文檔時(shí),第一個(gè)參數(shù)意義不大,第二個(gè)參數(shù)可以是任何一種流,到目前為止我們一直使用System.IO.FileStream將Document寫入文件中,示例代碼0105用到了System.IO.MemoryStream(這不是一個(gè)獨(dú)立的例子,你必須在Servlet Engine中測試這些代碼。

第三步 打開Document
u 摘要

在你寫入任何實(shí)際數(shù)據(jù)之前,你可能希望通過以下幾種方法寫入一些關(guān)于本文檔的摘要:

public boolean addTitle(String title)

public boolean addSubject(String subject)

public boolean addKeywords(String keywords)

public boolean addAuthor(String author)

public boolean addCreator(String creator)

public boolean addProducer()

public boolean addCreationDate()

public boolean addHeader(String name, String content)

你可以選擇自己的標(biāo)題、主題、關(guān)鍵字、作者、創(chuàng)建程序,但以下產(chǎn)品信息將始終被添加:iTextSharp (或者iTextSharp的引用)和創(chuàng)建時(shí)間(實(shí)際上這兩種方法是自動(dòng)調(diào)用的)。

你還可以將自定義的名稱添加為“報(bào)頭信息”,但是這對(duì)于PdfWriter沒有任何作用,如果看看實(shí)例代碼0101產(chǎn)生的pdf文件的“文檔屬性”,我們可以看到僅僅有PDF創(chuàng)建程序和產(chǎn)品日期,而示例代碼0106的“文檔屬性”框中有更多的信息。



打開document前要做的事:

你只能在Open方法調(diào)用之前添加摘要,這是iText開發(fā)工具提供的一個(gè)選擇。

在HTML中,報(bào)頭信息被放在文檔前面報(bào)頭標(biāo)識(shí)中間,調(diào)用Open方法將導(dǎo)致報(bào)頭信息寫入流,因而在Document被打開后無法更改這些數(shù)據(jù)。

PDF報(bào)頭信息不包括摘要,看起來有類似于:

%PDF-1.2

該行顯示生成的文檔是一個(gè)版本為1.2的PDF格式的文件,在PDF中,摘要保存在PdfInfo對(duì)象中,當(dāng)文檔關(guān)閉時(shí)已經(jīng)寫入PdfWriter中了,因此,沒有關(guān)于為什么不能修改庫來滿足任何時(shí)候添加或更改摘要的技術(shù)原因

u 頁面初始化

Open方法在不同的Witer中同時(shí)會(huì)產(chǎn)生初始化事件,舉例來說,如果你需要一個(gè)水印或者頁眉頁角對(duì)象出現(xiàn)在文檔第一頁的開始處,你需要在打開文檔前添加這些,同樣的用于設(shè)置該文檔其他頁水印、頁眉、頁角、頁數(shù)和尺寸。

當(dāng)調(diào)用下列方法:

public bool setPageSize(Rectangle pageSize)

public bool Add(Watermark watermark)

public void removeWatermark()

setting Header property

public void resetHeader()

setting Footer property

public void resetFooter()

public void resetPageCount()

setting PageCount property

產(chǎn)生的結(jié)果只能在下一個(gè)新頁中看到(當(dāng)在本頁調(diào)用初始化方法時(shí)),代碼見示例代碼0107,你必須要準(zhǔn)備一張名為watermark.jpg的圖片,如下圖:


u 閱讀器參數(shù):

你可以通過下面的辦法為PDF文件指定一些閱讀器 (如Adobe Reader) 參數(shù):

public void setViewerPreferences(int preferences)

在示例代碼0108中,指定了下面一些參數(shù):

writerA.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);

writerB.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);

writerC.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft | PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs);

正如你所看到的,參數(shù)可以使用以下一些常量:

l 文件被打開時(shí),頁面布局用到下面的其中一個(gè) :

PdfWriter.PageLayoutSinglePage – 同時(shí)只顯示一個(gè)頁面
PdfWriter.PageLayoutOneColumn –單列顯示
PdfWriter.PageLayoutTwoColumnLeft –雙列顯示,奇數(shù)頁在左
PdfWriter.PageLayoutTwoColumnRight -雙列顯示,奇數(shù)頁在右
l 文件打開時(shí),頁面模式用到下面其中之一:

PdfWriter.PageModeUseNone – 既不顯示大鋼也不顯示縮略圖
PdfWriter.PageModeUseOutlines – 顯示大綱
PdfWriter.PageModeUseThumbs – 顯示縮略圖
PdfWriter.PageModeFullScreen – 全屏模式,沒有菜單、windows控件或者其他任何windows可見控件
l PdfWriter.HideToolbar – 當(dāng)文檔激活時(shí),是否隱藏閱讀程序(如Adobe Reader)的工具條

l PdfWriter.HideMenubar -當(dāng)文檔激活時(shí),是否隱藏閱讀程序的菜單.

l PdfWriter.HideWindowUI -當(dāng)文檔激活時(shí),是否隱藏閱讀程序的界面元素,如滾動(dòng)條、導(dǎo)航條等,而僅僅保留文檔顯示

l PdfWriter.FitWindow – 是否調(diào)整文檔窗口尺寸以適合顯示第一頁。

l PdfWriter.CenterWindow – 是否將文檔窗口放到屏幕中央

l 在全屏模式下,指定如何顯示界面元素(選擇一個(gè))

PdfWriter.NonFullScreenPageModeUseNone -既不顯示大鋼也不顯示縮略圖
PdfWriter.NonFullScreenPageModeUseOutlines – 顯示大鋼
PdfWriter.NonFullScreenPageModeUseThumbs – 顯示縮略圖
說明:你只能在類PdfWriter中調(diào)用這些方法。

u 加密

打開文檔之前還要做的一件事情就是加密(如果你希望該文檔加密),要達(dá)到這個(gè)目的,你可以使用下面的方法:

public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions);

strength 是下面兩個(gè)常量之一:
PdfWriter.STRENGTH40BITS: 40 位
PdfWriter.STRENGTH128BITS: 128位 (Acrobat Reader 5.0及以上版本支持)
UserPassword和ownerPassword 可以為空或零長度, 這種情況下, ownerPassword 將被隨機(jī)的字符串代替
Permissions 為下列常量之一:
PdfWriter.AllowPrinting
PdfWriter.AllowModifyContents
PdfWriter.AllowCopy
PdfWriter.AllowModifyAnnotations
PdfWriter.AllowFillIn
PdfWriter.AllowScreenReaders
PdfWriter.AllowAssembly
PdfWriter.AllowDegradedPrinting
該功能參見示例代碼0109和示例代碼0110。

writer.setEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.AllowCopy);

示例代碼0109產(chǎn)生的文件能夠被打開而無須密碼,但用戶不能打印、修改本文檔。

writer.setEncryption(PdfWriter.STRENGTH128BITS, "userpass", "ownerpass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);

打你試圖打開示例代碼0110產(chǎn)生的文件時(shí),將要求輸入密碼('userpass'),因?yàn)樘砑恿薃llowPrinting參數(shù),你可以打印該文檔而不會(huì)發(fā)生任何問題。

第四步 添加內(nèi)容
在解釋第一步到第三步的不同示例中,你可能已經(jīng)遇到了一些對(duì)象如Phrase, Paragraph等 在接下來的幾章中,所有這些問題都將得到詳細(xì)解釋。

有時(shí)你可能想一個(gè)writer故意忽略document產(chǎn)生的行為,如示例代碼0111:

當(dāng)我們創(chuàng)建了兩個(gè)writer: writerA 和 writerB:

PdfWriter writerA = PdfWriter.getInstance(document, new FileStream("Chap0111a.pdf", FileMode.Create));

PdfWriter writerB = PdfWriter.getInstance(document, new FileStream("Chap0111b.pdf", FileMode.Create));

我們可以創(chuàng)建兩個(gè)有細(xì)微差別的文檔:

writerA.Pause();

document.add(new Paragraph("This paragraph will only be added to Chap0111b.pdf, not to Chap0111a.pdf"));

writerA.resume();

你可以比較文件: Chap0111a.pdf和Chap0111b.pdf的區(qū)別

第五步,關(guān)閉 document
關(guān)閉 document 非常重要, 因?yàn)樗鼘㈥P(guān)閉正在運(yùn)行的Writer并將內(nèi)容寫入文件,該方法在最后被調(diào)用,你應(yīng)該總是要關(guān)閉文檔。

高級(jí)話題:閱讀PDF文件

該部分內(nèi)容介紹了iText只能產(chǎn)生PDF格式的文件而不能解析PDF格式文件,不再翻譯。

第二章 塊、短句和段落

塊(Chunk)是能被添加到文檔的文本的最小單位,塊可以用于構(gòu)建其他基礎(chǔ)元素如短句、段落、錨點(diǎn)等,塊是一個(gè)有確定字體的字符串,要添加塊到文檔中時(shí),其他所有布局變量均要被定義。下面一行中,我們創(chuàng)建了一個(gè)內(nèi)容為“hello World”、紅色、斜體、COURIER字體、尺寸20的一個(gè)塊:

Chunk chunk = new Chunk("Hello world", FontFactory.getFont(FontFactory.COURIER, 20, Font.ITALIC, new Color(255, 0, 0)));

u 典型字體1:

在本指南中,除了第九章外(你可以在這里學(xué)會(huì)使用其他字體),我們將始終使用典型字體1,這些是不同的典型字體1:

· Courier (該字體定寬)

· Helvetica

· Times Roman

· Symbol

· ZapfDingbats



u 下劃線/刪除線

如果你希望一些塊有下劃線或刪除線,你可以通過改變字體風(fēng)格簡單做到:

Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));

Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC | Font.STRIKETHRU));

u 上標(biāo)/下標(biāo)

在塊中有幾個(gè)方法可以調(diào)用,其中大部分將在接下來的章節(jié)中介紹,本章中只介紹一個(gè)方法 setTextRise(float f). 你可以使用該方法在上標(biāo)或下標(biāo)中寫塊。

u 塊的背景

如果你想改變塊的背景,你可以使用方法setBackground(Color color). 這將在塊文本的下面添加一個(gè)彩色矩形:

ck.setBackground(new Color(0xFF, 0xFF, 0x00));

在示例代碼0101中,你可以概覽典型字體1和一個(gè)使用setTextRise, setBackground等方法的的例子。

短句
短句(Phrases)是一系列以特定間距(兩行之間的距離)作為參數(shù)的塊,一個(gè)短句有一個(gè)主字體,但短句中的一些塊具有不同于主字體的字體,你有更多的選擇去創(chuàng)建短句,一些具體使用參見代碼0202。



u 古希臘語

因?yàn)楣畔ED語經(jīng)常使用,在類Phrase的構(gòu)造函數(shù)中有一個(gè)特征:將一個(gè)字符串作為參數(shù)(如果你想避免這種情況,你只能使用塊工作而不能使用字符串),正如你在示例代碼0203中看到的,這個(gè)特征自動(dòng)地將913至937(除903)和945至969(古希臘的ASCII值)范圍內(nèi)的所有字體改為希臘符號(hào)。

u 非主要性

與其說這是一個(gè)特征,不如說是一個(gè)缺陷,但無論如何,這使創(chuàng)建一個(gè)非主要性的短句或段落成為可能,這將產(chǎn)生一個(gè)由下向上書寫的臨時(shí)作用(參見示例代碼0204)。如果你想在一頁中將一些位置移動(dòng)到上面時(shí)可能有用。

說明,當(dāng)你穿越上邊屆時(shí)無法檢查,也沒有辦法讓你回到前一頁。

段落
段落是一系列塊和(或)短句。同短句一樣,段落有確定的間距。用戶還可以指定縮排;在邊和(或)右邊保留一定空白,段落可以左對(duì)齊、右對(duì)齊和居中對(duì)齊。添加到文檔中的每一個(gè)段落將自動(dòng)另起一行。有幾種辦法建立一個(gè)段落,如:

Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));

Paragraph p2 = new Paragraph(new Phrase("This is my second paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));

Paragraph p3 = new Paragraph("This is my third paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12));

所有有些對(duì)象將被添加到段落中:

p1.add("you can add strings, "); p1.add(new Chunk("you can add chunks ")); p1.add(new Phrase("or you can add phrases."));

說明:一個(gè)段落有一個(gè)且僅有一個(gè)間距,如果你添加了一個(gè)不同字體的短句或塊,原來的間距仍然有效,你可以通過SetLeading來改變間距,但是段落中所有內(nèi)容將使用新的中的間距。見示例代碼0205。

u 保持段落的整體性

在示例代碼0206中,我們使用了setKeepTogether(true)方法來試圖將一個(gè)段落放在同一頁中,該方法并不是始終有效,舉個(gè)例子,第一段不能剛好在一頁中,于是被分成了兩部分。第二段被放置在第二頁,但第三段順沿到了第三頁上。

字體的延續(xù)
你應(yīng)該掌握字體延續(xù)的一些規(guī)則,這些規(guī)則的應(yīng)用見示例代碼0207,當(dāng)我們將一些內(nèi)容用指定的字體(非默認(rèn)字體)創(chuàng)建一個(gè)短句或者段落后再添加更多內(nèi)容時(shí),初始對(duì)象的字體風(fēng)格將被延續(xù),請(qǐng)看“Hello 1!”和“Hello 2”:

Phrase myPhrase = new Phrase("Hello 2! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase("some other font ", new Font(Font.HELVETICA, 8, Font.ITALIC)));

myPhrase.Add(new Phrase("This is the end of the sentence.\n", new Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

我們由Times New Roman 粗體字開始,添加一些文本使用Helvetica字體而不指定風(fēng)格,我們發(fā)現(xiàn)文本被改變成了粗體,當(dāng)我們?cè)偌右恍┪谋臼褂肨imes New Roman字體和斜體風(fēng)格,結(jié)果變成了粗斜體。

如果我們使用FontFactory來創(chuàng)建字體,字體風(fēng)格不會(huì)被延續(xù),因?yàn)镕ontFactory使用了另外的技術(shù)構(gòu)建一個(gè)字體:

myPhrase = new Phrase("Hello 1bis! ", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.BOLD));

myPhrase.Add(new Phrase("some other font ", FontFactory.getFont(FontFactory.HELVETICA, 8, Font.ITALIC)));

myPhrase.Add(new Phrase("This is the end of the sentence.\n", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

在上面的代碼中,使用Helvetica字體的文本風(fēng)字體沒有指定(既不是粗體也不是斜體)。采用Times New Roman的額外文本僅僅顯示為斜體。

你也看到我們添加了一個(gè)段落,添加該段落就如同一個(gè)短句。

Paragraph myParagraph = new Paragraph("Hello 1! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));

myParagraph.Add(new Paragraph("This is the end of the sentence.",FontFactory.getFont(new Font.TIMES_NEW_ROMAN, 8)));

document.Add(myParagraph);

你可以不這樣做,但將失去字體風(fēng)格的延續(xù),首先不用任何字體創(chuàng)建段落(例中我們僅僅給字體出間距為1.5倍),然后添加內(nèi)容的不同部分。



myParagraph = new Paragraph(12);

myParagraph.Add(new Paragraph("Hello 3! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myParagraph.Add(new Paragraph("This is the end of the sentence.", new Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myParagraph);

如果你使用了Phrase對(duì)象,你同樣會(huì)失去字體風(fēng)格的延續(xù):

myPhrase = new Phrase(12);

myPhrase.Add(new Phrase("Hello 4! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD)));

myPhrase.Add(new Phrase("This is the end of the sentence.", newFont(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));

document.Add(myPhrase);

u 更改分割符

通常,當(dāng)文本不能放在一行時(shí),文本將被分割成不同的部分,iText首先會(huì)查找分割符,如果沒有找到,文本將在行尾被截?cái)唷S幸恍╊A(yù)定的分割符如“ ”空格和“-”連字符,但是你可以使用setSplitCharacter方法來覆蓋這些默認(rèn)值。在示例代碼0208中,你可以看到當(dāng)?shù)竭_(dá)行尾時(shí)一個(gè)塊是如何被分割的。然后分隔符被改成點(diǎn)“.”,該行在該字符處被分割。

第三章 錨點(diǎn)、列表和注釋
錨點(diǎn)
我們都知道HTML中的超文本鏈接,當(dāng)我們點(diǎn)擊某些語句,你能夠跳轉(zhuǎn)到網(wǎng)上的其他頁。在PDF中也可以實(shí)現(xiàn)這種功能。事實(shí)上,在第十一章整個(gè)章節(jié)中有關(guān)于PDF鏈接的介紹,但這是iText的更高級(jí)的應(yīng)用,本章中我們處理簡單的iText。

如果你想在文檔中添加一個(gè)外部鏈接(例如使用URL鏈接到WEB上的其他文檔),你可以簡單地使用Anchor對(duì)象,它派生于Phrase對(duì)象,使用方法相同。只有兩種額外方法定義兩種額外變量:setName和 setReference。

外部鏈接示例:

Anchor anchor = new Anchor("website", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE, new Color(0, 0, 255)));

anchor.Reference = "http://itextsharp.sourceforge.net";

anchor.Name = "website";

如果你想添加內(nèi)部鏈接,你需要選擇該鏈接不同的名稱,就象你相位在HTML中利用名稱作為錨點(diǎn)一樣。為達(dá)到該目的,你需要添加一個(gè)“#”。

內(nèi)部鏈接示例:

Anchor anchor1 = new Anchor("This is an internal link");

anchor1.Name = "link1";

Anchor anchor2 = new Anchor("Click here to jump to the internal link");

anchor.Reference = "#link1";

這兩個(gè)鏈接的例子請(qǐng)見示例代碼0301。

列表
通過類List 和ListItem,你可以添加列表到PDF文件中,對(duì)于列表你還可以選擇是否排序。

排序列表示例:

List list = new List(true, 20);

list.Add(new ListItem("First line"));

list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?"));

list.Add(new ListItem("Third line"));

結(jié)果如下:

First line
The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?
Third line
不排序示例如下:

List overview = new List(false, 10);

overview.Add(new ListItem("This is an item"));

overview.Add("This is another item");

結(jié)果如下:

This is an item
This is another item
你可以通過setListSymbol方法更改列表符號(hào):

// 用字符串作為列表符號(hào)

list1.ListSymbol = "*";

// 用Chunk 作為列表符號(hào)(包含“&#8226;”字符)

list2.ListSymbol = new Chunk("\u2022", FontFactory.getFont(FontFactory.HELVETICA, 20));

//用圖片作為列表符號(hào)

list3.ListSymbol = new Chunk(Image.getInstance("myBullet.gif"), 0, 0);

還可以使用setIndentationLeft和setIndentationRight方法設(shè)置縮排,列表符號(hào)的縮排在構(gòu)造函數(shù)中設(shè)置。更多的例子請(qǐng)參見示例代碼0302。

注釋
iText支持不同風(fēng)格的注釋。

u 文本注釋:

你可以添加一小段文本到你的文檔中,但它并非文檔內(nèi)容的一部分,注釋有標(biāo)題和內(nèi)容:

Annotation a = new Annotation(

"authors",

"Maybe it's because I wanted to be an author myself that I wrote iText.");

u 外部鏈接注釋:

你需要指定一個(gè)可點(diǎn)擊的矩形和一個(gè)字符串(URL描述)或URL對(duì)象:

Annotation annot = new Annotation(100f, 700f, 200f, 800f, new URL("http://www.lowagie.com"));

Annotation annot = new Annotation(100f, 700f, 200f, 800f, "http://www.lowagie.com");

u 外部PDF文件鏈接注釋:

你需要指定一個(gè)可點(diǎn)擊的矩形和一個(gè)字符串(文件名稱)和目的文件或頁碼。

Annotation annot = new Annotation(100f, 700f, 200f, 800f, "other.pdf", "mark");

Annotation annot = new Annotation(100f, 700f, 200f, 800f, "other.pdf", 2);

u 指定行為鏈接注釋

你需要指定一個(gè)可點(diǎn)擊的矩形和一個(gè)指定的行為:

Annotation annot = new Annotation(100f, 700f, 200f, 800f, PdfAction.FIRSTPAGE);

u 應(yīng)用程序鏈接注釋:

你需要指定一個(gè)可點(diǎn)擊的矩形和一個(gè)應(yīng)用程序:

Annotation annot = new Annotation(300f, 700f, 400f, 800f, "C://winnt/notepad.exe", null, null, null);

我們無須在頁面上指定一個(gè)位置,iText會(huì)內(nèi)部處理。你能夠看到iText添加文本注釋在頁面上當(dāng)前位置下面,第一個(gè)在段后第一行下面,第二個(gè)在短句結(jié)束處的下面。

所有其他注釋需要指定想匹配的矩形區(qū)域,在示例代碼0304中,我們畫了一些正方形(使用的函數(shù)將在第十章中介紹),為每個(gè)正方形添加了一些鏈接注釋。

第四章 頁眉頁腳、章節(jié)、區(qū)域和繪圖對(duì)象
使用在第三至第五章中描述的大量簡單iText對(duì)象可以避免更多的高級(jí)話題(第九至十二章),緊記這些簡單對(duì)象限制的功能,大量復(fù)雜的功能在第三部分。

頁眉頁腳
HeaderFooter對(duì)象可以于為文檔每頁添加頁眉和頁腳。這樣一個(gè)頁眉或頁腳包含一個(gè)標(biāo)準(zhǔn)的短句(如果需要)和當(dāng)前頁碼,如果你需要更多復(fù)雜的頁眉和頁腳(使用表格或者第幾頁共幾頁),請(qǐng)閱讀第十二章。

在示例代碼0401中,你可以看到我們首先添加了一個(gè)包含頁碼沒有任何邊框的頁腳。

HeaderFooter footer = new HeaderFooter(new Phrase("This is page: "), true);

footer.Border = Rectangle.NO_BORDER;

document.Footer = footer

我們還可以使用下面的構(gòu)造函數(shù):

HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase("."));

構(gòu)造函數(shù)知道你希望添加一個(gè)頁碼和將其放置在兩個(gè)短句間,如果你只是設(shè)置一個(gè)HeaderFooter而不改變邊框,頁眉或頁腳的文本上下各有一條直線。

HeaderFooter header = new HeaderFooter(new Phrase("This is a header without a page number"), false);

document.Header = header;

章節(jié)和區(qū)域
在第十一章中將描述如何構(gòu)建一個(gè)樹的外觀,如果你只需要一個(gè)簡單的章節(jié)和(子)區(qū)域,你可以用Chapter對(duì)象和Section對(duì)象自動(dòng)構(gòu)建一個(gè)樹:

Paragraph cTitle = new Paragraph("This is chapter 1", chapterFont);

Chapter chapter = new Chapter(cTitle, 1);

Paragraph sTitle = new Paragraph("This is section 1 in chapter 1", sectionFont);

Section section = chapter.addSection(sTitle, 1);

在示例代碼0402中,我們添加了一系列的章節(jié)和子區(qū)域,你可以看到完整的樹形,樹形結(jié)構(gòu)默認(rèn)打開,如果你希望部分節(jié)點(diǎn)關(guān)閉,你必須使用用BookmarkOpen屬性其值為false,詳見示例代碼0403。

圖形
如果你想添加圖形,如直線、圓、幾何窗體,你應(yīng)該閱讀讀十章,但如果你只需要一些有限的功能,你可以使用Graphic對(duì)象

Graphic grx = new Graphic();

//添加一個(gè)矩形

grx.rectangle(100, 700, 100, 100);

// 添加一條斜線

grx.moveTo(100, 700);

grx.lineTo(200, 800);

// 將圖形顯示出來

grx.stroke();

document.Add(grx);

完整的代碼請(qǐng)見示例代碼0404,如果想看到全部的方法,請(qǐng)參見PdfContentByte對(duì)象API。

當(dāng)你想給頁面加一個(gè)邊框或者在文本當(dāng)前位置畫一條水平線時(shí),圖形對(duì)象非常有用。下面的方法用指定的寬度、間距(如果需要)和顏色畫一個(gè)邊框。

public void setBorder(float linewidth, float extraSpace);

public void setBorder(float linewidth, float extraSpace, Color color);

下面的方法用指定的寬度(如果需要)和顏色畫一條水平線,線的長度是指定兩邊緣間可用面積的的百分比。

public void setHorizontalLine(float linewidth, float percentage)

public void setHorizontalLine(float linewidth, float percentage, Color color)

示例代碼5中,有一個(gè)離邊界5磅,線寬3磅的邊框,還有兩條水平線,一條為黑色,5磅寬,可用空間的100%,另外一條為紅色,線寬3磅,可用空間的80%。

第五章 表格
重點(diǎn):如果你僅僅生成PDF文件(沒有XML、HTML、RTF……),使用類pdfPTable代替類Table更好。

一些簡單的表格
一個(gè)表格是包含單元格排列成矩陣的矩形區(qū)域。表格的距陣并不要求是m×n的,它可以有空洞或者單元格比單個(gè)的要大。

創(chuàng)建一個(gè)表格最通用的辦法是預(yù)先知道有幾行幾列:

public Table(int columns, int rows);

在示例代碼0501中,我們構(gòu)建了一個(gè)簡單的表:

Table aTable = new Table(2,2);

aTable.addCell("0.0");

aTable.addCell("0.1");

aTable.addCell("1.0");

aTable.addCell("1.1");

該表格有兩行兩列,單元格被自動(dòng)添加,從第一行第一列開始,然后是第二列,當(dāng)一行滿后,下一單元格自動(dòng)添加到下一行的第一列中。

也可以將單元格添加到表中指定的位置,如示例代碼0502,別了要添加System.Drawing.dll引用,以獲得Point對(duì)象,我們創(chuàng)建了一個(gè)4行4列的表格然后添加一些單元格到隨機(jī)的位置上:

Table aTable = new Table(4,4);

aTable.AutoFillEmptyCells = true;

aTable.addCell("2.2", new Point(2,2));

aTable.addCell("3.3", new Point(3,3));

aTable.addCell("2.1", new Point(2,1));

aTable.addCell("1.3", new Point(1,3));

你可以看到我們將AutoFillEmptyCells屬性設(shè)置為true,這將自動(dòng)、默認(rèn)的單元格布局填充空的單元格,如果我們忘記了這樣做(就象本例中第二個(gè)表格),將沒有額外的單元格添加,不包含任何單格的行也將被忽略,在本例中,第一行將不顯示,因?yàn)樵撔惺强招小?

經(jīng)常用數(shù)據(jù)庫查詢結(jié)果來填充表格,大多數(shù)情況下,你預(yù)先并不知道到底需要多少行,這就是為什么還有第二個(gè)構(gòu)造函數(shù)的原因:

public Table(int columns);

iText根據(jù)需要自動(dòng)添加行,在示例代碼0503中,初始化了4行4列,當(dāng)我們添加第6行和第7行的單元格時(shí),iText自動(dòng)增加行數(shù)到7。

增加列數(shù)也是可能的,但是有點(diǎn)麻煩,它不能自動(dòng)生成,你必須使用addColumns方法并設(shè)置列寬,詳見示例代碼0504。

一些表格參數(shù)
前面例子中的表格并不美觀,我們可以設(shè)置大量的參數(shù)來改變表格外觀。類Table和類Cell派生于類Rectangle,我們可以用大量典型的Rectangle方法,讓我們來看看示例代碼0505。

Table table = new Table(3);

table.BorderWidth = 1;

table.BorderColor = new Color(0, 0, 255);

table.Cellpadding = 5;

5. table.Cellspacing = 5;

Cell cell = new Cell("header");

cell.Header = true;

cell.Colspan = 3;

table.addCell(cell);

10. cell = new Cell("example cell with colspan 1 and rowspan 2");

cell.Rowspan = 2;

cell.BorderColor = new Color(255, 0, 0);

table.addCell(cell);

table.addCell("1.1");

15. table.addCell("2.1");

table.addCell("1.2");

table.addCell("2.2");

table.addCell("cell test1");

cell = new Cell("big cell");

20. cell.Rowspan = 2;

cell.Colspan = 2;

cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);

table.addCell(cell);

table.addCell("cell test2");

25. document.Add(table);



u 單元格間距和填距

在第4行中,我們?cè)O(shè)置了表格的填距,就是單元格邊界和內(nèi)容間一定數(shù)量的空間,在前面的示例中,我們看到文本緊貼邊界,通過使用用特定的填距,就可以避免。

在第5行中,我們?cè)O(shè)置了表格的間距,就是單元格和表格邊界間的一定數(shù)量的空間,不同的單元格間使用了半數(shù)空間,具體代碼見示例代碼0506。

u 對(duì)齊方式

在示例代碼0506中,我們也改變了單元格“big cell”的對(duì)齊方式:

cell.HorizontalAlignment = Element.ALIGN_CENTER;

cell.VerticalAlignment = Element.ALIGN_MIDDLE;

注:不能總是相信垂直對(duì)齊方式。

u 邊框

如果我們象在第14行中那樣添加了一個(gè)單元格,將使用默認(rèn)的單元格布局(默認(rèn)的布局可以SetDefalut方法改變),如果我們使用了Cell對(duì)象,我們可以控制每一個(gè)單元格的布局。

在第2和第三中,我們?cè)O(shè)置整個(gè)表格的邊框?qū)挾群瓦吙蝾伾?#xff0c;我們?cè)趩卧裆峡梢允褂玫姆椒?#xff0c;在12行中,每個(gè)單元格用“box”作為邊界繪制(就象在HTML中),但是示例代碼0507顯示,我們?cè)赑DF中有大量更多可能。

u 顏色

在第22行中,你也能定義單元格的背景色,在示例代碼0507中,我們不使用顏色只是用一定灰度填充。

u 行跨和列跨

最后,你也能設(shè)置單元格的行跨(11/20行)和列跨(8/21列)。通過這種方法可以將幾個(gè)單元格合并成一個(gè)大的單元格。

u 備注

第7行在PDF中沒有意義,用于生成HTML,在HTML中并不是總能產(chǎn)生同樣的布局,PDF表格有點(diǎn)象:



header

example cell with colspan 1 and rowspan 2
1.1
2.1

1.2
2.2

cell test1
big cell

cell test2





















u 表格分割

如果一個(gè)表格不能放在一頁中,將自動(dòng)被分割,示例代碼0508顯示了當(dāng)一個(gè)表格到達(dá)頁邊時(shí)發(fā)生的情況,這將在下一節(jié)中解釋。

大表格
跨越幾頁的表格將自動(dòng)被分割成不同的部分。示例代碼0509顯示了一個(gè)跨越多頁的報(bào)表。該報(bào)表有一個(gè)表頭,如果你希望這個(gè)表頭在每頁都出現(xiàn),你可以用endHeaders()方法標(biāo)記表頭區(qū)域的結(jié)束點(diǎn),見示例代碼0510。

為做這樣的報(bào)表,建議設(shè)置單元格間距為0和僅使用指定的填距。

你可能已經(jīng)注意到了,當(dāng)一個(gè)表格被分割時(shí),一些邊界好象丟失了。這是因?yàn)閱卧裨谇耙豁摫煌暾乩L制了而不會(huì)傳遞給下一頁。

u 強(qiáng)行將一個(gè)表格或單元格布置到一頁上

有有些情況下,你可能希望避免單元格或者整個(gè)表被拆分成兩個(gè)部分,示例代碼0511差不多和示例代碼0508完全一樣,但我們?cè)O(shè)置了參數(shù)TableHasToFit為true,看看示例代碼0508和示例代碼0511結(jié)果區(qū)別。在示例代碼0512中我們修改了示例代碼0510的CellsHaveToFit屬性為true,比較兩個(gè)示例產(chǎn)生結(jié)果的區(qū)別。

內(nèi)存管理
當(dāng)我們添加一個(gè)對(duì)象到文檔時(shí),該對(duì)象一有可能就寫入了輸出流,但當(dāng)創(chuàng)建一個(gè)表格時(shí),該Table對(duì)象一直保存著,對(duì)于真正的大表格,這將成為一個(gè)問題。

同樣,當(dāng)你正寫一個(gè)HttpServletResponse對(duì)象到輸出流時(shí),瀏覽器也可能超時(shí)。這就是為什么你自己用fitsPage()方法控制表分割是有用的,示例代碼0513告訴你如何做。

嵌套表格
有兩種方法嵌套表格,第一種是利用insertTable方法明確地將一個(gè)表格插入到另外一個(gè)表格,示例代碼0514顯示了通過插入到其他表格的辦法創(chuàng)建的5個(gè)表格。正如你看到的在前面兩個(gè)表中,所有空的單元格自動(dòng)得到分割,因?yàn)楦淖兞嗽瓉淼谋砀瘛H绻粋€(gè)單元格不空,列跨度和(或)行跨度將自動(dòng)調(diào)整到新的位置,頁面上第三個(gè)表格顯示所有原表中列的相關(guān)寬度都得到了保護(hù),第四個(gè)表格顯示我們可以在插入了表格后添加其他單元格:該單元格自由地添加到下一個(gè)單元格中。最后是一個(gè)深度嵌套的表格。

當(dāng)你使用insertTable方法時(shí),插入表的寬度百分比不會(huì)被考慮,如果你希望插入表僅占單元格的80%(這是默認(rèn)的寬度百分比),你不得不在單元格中繞排,見示例代碼0515,這也是讓一個(gè)表結(jié)合其他數(shù)據(jù)存放在同一個(gè)單元格中的唯一辦法,見示例代碼0516。

備注:你只能將一個(gè)表格插入到列跨度和行跨度均為1的單元格中。

表格偏移
當(dāng)一個(gè)表格被添加到文檔之前,以當(dāng)前間距為準(zhǔn)的新行將被添加(如前一個(gè)插入對(duì)象的間距)。有時(shí)因?yàn)榍耙粋€(gè)插入對(duì)象和當(dāng)前表格間的間距過大或過小你并不希望這樣做,如果你想改變這個(gè)空間,你不得不設(shè)置表格偏移,如示例代碼0517。

表格的絕對(duì)位置
iTextSharp.text.Table是一個(gè)通過標(biāo)準(zhǔn)方法創(chuàng)建表格的相當(dāng)簡單的類,但有時(shí)你希望表格有一些特殊的行為,這種情況下你將使用更復(fù)雜的類com.lowagie.text.pdf.PdfPTable,示例代碼0518是一個(gè)非常簡單的例子,在第十章和十二章中將有一些更復(fù)雜的例子。

第六章 圖片
Image對(duì)象
如果你學(xué)習(xí)過API,你可能已經(jīng)注意到可以通過幾種構(gòu)造函數(shù)來創(chuàng)建圖片,本手冊(cè)中,我們將僅僅告訴你最簡單的解決方案,如訪問通過文件名或URL確定的圖片生成的Image對(duì)象。

public static Image getInstance(Uri url)

public static Image getInstance(string filename)

Image是一個(gè)抽象類,故得到實(shí)例的方法將判斷給出的圖片的類別(GIF、Jpeg、PNG……)并返回對(duì)象的類別Gif、Jpeg、Png……,一些圖片會(huì)被忽略,如果你想知道哪些圖片會(huì)被忽略,請(qǐng)查閱FAQ(http://www.lowagie.com/iText/faq.html#images)。

u 通過URL得到圖片實(shí)例

這是添加一個(gè)圖片最簡單的辦法,見示例代碼0601,我們添加了一個(gè)WMF、一個(gè)Gif、一個(gè)Jpeg和一個(gè)PNG圖片到文檔中,使用4個(gè)URL得到:

Image wmf = Image.getInstance(new URL("../examples/harbour.wmf"));

Image gif = Image.getInstance(new URL("../examples/vonnegut.gif"));

Image jpeg = Image.getInstance(new URL("../examples/myKids.jpg"));

Image png = Image.getInstance(new URL("../examples/hitchcock.png"));

備注:許多PDF庫在插入一個(gè)圖片前都將其解壓縮并轉(zhuǎn)換成位圖格式,下面是幾個(gè)我為什么不這樣做的原因:

這將導(dǎo)致PDF文件增大,這樣產(chǎn)生的PDF文件尺寸是不同圖片文件尺寸總和的數(shù)十倍。
面臨一個(gè)法律問題:LZW算法受專利保護(hù),所以不允許使用這種算法來解壓縮GIF等文件。
u 通過文件名得到圖片實(shí)例

通過簡單地改變圖片引用路徑將示例代碼0601改成示例代碼0602:

Image gif = Image.getInstance("vonnegut.gif");

Image jpeg = Image.getInstance("myKids.jpg");

Image png = Image.getInstance("hitchcock.png");

同示例代碼0601的區(qū)別只是該圖象從本地獲取而已,另外一個(gè)例子見示例代碼0603。

圖片的位置
u 對(duì)齊方式

通過下面方法設(shè)置圖片的對(duì)齊方式:

Alignment = Image.RIGHT

Alignment = Image.MIDDLE

Alignment = Image.LEFT

參見示例代碼0604。

我們將Vonnegut的圖片放在右邊,小孩的圖片放在中間,hitchcock的圖片放在左邊。

u 圖片和文本

另外,你還可以指定文本相對(duì)圖片的環(huán)繞方式:

Alignment = Image.RIGHT | Image.TEXTWRAP

Alignment = Image.MIDDLE

Alignment = Image.LEFT | Image.UNDERLYING

見示例代碼0506,文字在Vonnegut圖片的左側(cè),并不在我小孩的圖處環(huán)繞,且排在Hitchcock圖片的上面。

說明:該功能尚有一些BUG。

u 絕對(duì)位置

當(dāng)制作PDF文件時(shí),你可能用到該方法:

public void setAbsolutePosition(int absoluteX, int absoluteY)

將一個(gè)圖片放要頁面上一個(gè)絕對(duì)位置的代碼見示例代碼0606,我們?cè)诓煌淖鴺?biāo)處添加了兩幅圖片,這里使用給定的坐標(biāo)將圖片放在了左下角,通過將圖片的寬度和高度作為X和Y坐標(biāo)將設(shè)置第一個(gè)圖片,坐標(biāo)的2倍設(shè)置第二個(gè)圖片。

縮放和旋轉(zhuǎn)圖片
u 縮放

有幾種辦法可以縮放圖片:

public void scaleAbsolute(int newWidth, int newHeight)

public void scalePercent(int percent)

public void scalePercent(int percentX, int percentY)

public void scaleToFit(int fitWidth, int fitHeight)

小孩的圖片大小為194×202象素,如果你想讓圖片小一些,你可以通過scaleAbsolute(97, 101)進(jìn)行縮放,使用scalePercent(50)也能到達(dá)同樣的效果。

還可以通過scaleAbsolute(194, 101)來減小,所以這些例子都放在了示例代碼0607中。

u 對(duì)分辨率的影響

如果一個(gè)圖片不經(jīng)任何縮放,其分辨率(resolution)為72,如果該圖片縮放比例為50%,則分辨率為144,如果有更低的縮放比,則分辨率將更大,因?yàn)橄笏叵嗤叽缱兊酶×恕J褂?2/300=24%的比例放置一個(gè)300dpi的圖片,例:你用300dpi掃描了一個(gè)5×5英寸的圖片,圖片結(jié)果為1500×1500象素(5×300),當(dāng)你用24%(72/300=0.24)的比例將該圖片放置到PDF文件中時(shí),PDF中的圖片將為5×5英寸1500X1500象素300dpi,該圖片將始終為1500X1500象素而不管尺寸如何。

u 旋轉(zhuǎn)

可以通過下面的方法旋轉(zhuǎn)圖片

public void setRotation(double r)

詳見示例代碼0608。

原始圖片數(shù)據(jù)
到目前為止,所有例子中使用的圖片均來自地本地磁盤或者某個(gè)網(wǎng)站,但也可能使用包含圖片信息的數(shù)組來得到圖片的實(shí)例:

public static Image getInstance(byte[] img)

該方法同前面方法的效果相同,返回一個(gè)新的Gif,Jpeg或者Png類別的Image對(duì)象。

在示例代碼0609中,我們添加一個(gè)從一個(gè)Jpeg文件中讀入到字節(jié)數(shù)組中的圖片,很明顯,使用其他getInstance方法得到實(shí)例更優(yōu)越,但這僅僅是一個(gè)例子,該getInstance方法在動(dòng)態(tài)創(chuàng)建那些根本不存在的圖片時(shí)非常有用。

該例子也演示了如何創(chuàng)建和使用一個(gè)原始圖片。

public static Image getInstance(int width, int height, int components, int bpc, byte data[])

本例中創(chuàng)建了一個(gè)100×100象素的圖片,因?yàn)槊總€(gè)象素用RGB描述,所以圖片大小為100×100×3字節(jié)。

System.Drawing.Bitmap
示例代碼0610是一個(gè)比較高級(jí)的話題,理由如下:

首次使用到了System.Drawing.Bitmap類。該類在.net框架中,可以使用更多類型的圖片,如TIFF、GIF,而這些圖片在iText中均不支持,你可以檢查一下.net框架看看你需要的圖片格式是否得到支持。
前面的例子中,還有一些事情要注意:當(dāng)添加一個(gè)圖片時(shí)不會(huì)出現(xiàn)什么問題,文字始終浮于圖片上面,本例中,我們希望圖片浮在文字上面。這也是為什么我們將使用iTextSharp.text.pdf.PdfContentByte類的原因(見第十章)。
你將發(fā)現(xiàn)使用的圖片為透明的gif格式,你可以到http://itextsharp.sourceforge.net/examples/h.gif下載得到。
TIFF和CCITT
示例代碼0611也是一個(gè)比較高級(jí)的話題,例中轉(zhuǎn)換一個(gè)TIFF文件到PDF文件。

u 圖片遮罩

示例代碼0613在,我們創(chuàng)建了一個(gè)用作遮罩的圖片











3C









7E









E7









C3









C3









E7









7E









3C



















該圖片尺寸為8×8象素,每組一個(gè)字節(jié),使用makeMask()方法可以轉(zhuǎn)換成遮罩。

byte maskr[] = {(byte)0x3c, (byte)0x7e, (byte)0xe7, (byte)0xc3, (byte)0xc3, (byte)0xe7, (byte)0x7e, (byte)0x3c};

Image mask = Image.getInstance(8, 8, 1, 1, maskr);

mask.makeMask();

mask.setInvertMask(true);

我們可以用該遮罩直接遮住其他圖片的一部分。

PdfContentByte cb = writer.DirectContent;

Image image = Image.getInstance("vonnegut.gif");

image.ImageMask = mask;

或者我們將該遮罩用于模板遮罪中。

PdfContentByte cb = writer.DirectContent;

cb.setRGBColorFill(255, 0, 0);

cb.addImage(mask, mask.scaledWidth() * 8, 0, 0, mask.scaledHeight() * 8, 100, 400);

關(guān)于ContentByte對(duì)象更多信息請(qǐng)參見第十章。

圖片和其他對(duì)象
u 圖片在塊中

有時(shí),可以方便地將圖片置于塊中,通過一定偏移將一個(gè)圖片置于塊中:

Chunk ck = new Chunk(img, 0, -5);

具體代碼見示例代碼0614,我們可以添加該特殊圖片塊到短句、表格等,本例中的圖片請(qǐng)到http://itextsharp.sourceforge.net/examples/pngnow.png下載。

u 圖片在表格中

你可以將圖片添加到單元格中,但有兩個(gè)副作用:

l 表格的寬度是確定,當(dāng)圖片超出單元格的寬度時(shí),將自動(dòng)縮小。

l 你不能進(jìn)行文字繞排和為圖片添加下劃線。

參見示例代碼0615。

u 圖片鏈接注釋

如果你希望得到一個(gè)可點(diǎn)擊的圖片,或者想添加鏈接注釋到圖片上,你需要?jiǎng)?chuàng)建一個(gè)Annotation對(duì)象,并添加到圖片上,你不需要指定位置(你可以使用0,0,0,0),該位置會(huì)內(nèi)部更新以適合該圖片。

gif.Annotation = new Annotation(0, 0, 0, 0, "Chap1102b.pdf", 3);

jpeg.Annotation = new Annotation("picture", "These are my children", 0, 0, 0, 0);

參加示例代碼0616。

第二部分 其他文檔格式
第七章 XML和 (X)HTML
本章主要介紹了如何利用iText控件生成XLM文檔和(X)HTML文檔,但我們對(duì)這些并不感興趣,故只介紹本章中提到的將XML轉(zhuǎn)為PDF。

在第一章中,我們通過5步生產(chǎn)一個(gè)PDF文件,為了將一個(gè)XML文件轉(zhuǎn)換為PDF文件,只需重寫第3和第4步,第5步由解析器自動(dòng)處理。

//第3步:創(chuàng)建一個(gè)解析器并設(shè)置文檔句柄:

iTextHandler h = new iTextHandler(document);

//第4步,轉(zhuǎn)換該文檔:

h.Parse("Chap0701.xml");

示例代碼見示例代碼0702

第八章 RTF文件
RTF包
RTF包是基于iText包擴(kuò)展出來的,允許iText除生成PDF文件外還可以輸出RTF文件,除了一些在RTF包中不支持的特性外,大多數(shù)PDF文件特性都可以使用。

創(chuàng)建一個(gè)RTF文檔
創(chuàng)建一個(gè)RTF文檔和創(chuàng)建一個(gè)PDF文檔方法是一樣的,都是這基本的5步,唯一的區(qū)別是第2步中用RtfWriter代替了PdfWriter,見示例代碼0801。

第1步 創(chuàng)建一個(gè)the iTextSharp.text.Document對(duì)象的實(shí)例:

Document document = new Document();

第2步 創(chuàng)建一個(gè)document的RtfWriter將document寫入你選擇的輸出流:

RtfWriter.getInstance(document, new FileStream("Chap0801.rtf"), FileMode.Create);

第3步 打開document:

document.Open();

第4步 添加內(nèi)容到document

document.Add(new Paragraph("Hello World"));

第5步 關(guān)閉document

document.Close();

關(guān)于如何創(chuàng)建其他對(duì)象并添加到document中,請(qǐng)參見其他章節(jié)的內(nèi)容。

不支持的特性
水印
閱讀器參數(shù)
加密
內(nèi)嵌字體
塊間距
段落右縮排
列表右縮排
無圓點(diǎn)符號(hào)列表
嵌套表格
除JPEG和PNG的其他圖片
RTF中擴(kuò)展的頁眉和頁腳
寫入RTF時(shí)無法在開始新頁前通過setHeader方法改變文檔的頁眉或頁腳,這里有兩個(gè)辦法來解決這個(gè)問題。

利用“Chapters”,添加一個(gè)新“chapter”到文檔前,使用setHeader或setFooter,你可以在不同的“Chapters”中使用不同的頁眉或頁腳,見示例代碼0802。
使用RtfHeaderFooters類。該類允許你設(shè)置4個(gè)頁眉或頁腳,并指定在哪頁出現(xiàn)。你當(dāng)然可以結(jié)合Chapter創(chuàng)建4個(gè)不同的頁眉或頁腳,見示例代碼0803。
u 使用RtfHeaderFooters類

第1步創(chuàng)建一個(gè)RtfHeaderFooters類:

RtfHeaderFooters headers = new RtfHeaderFooters();

第2步添加HeaderFooter對(duì)象

headers.Add(RtfHeaderFooters.LEFT_PAGES, new HeaderFooter(new Phrase("This header is only on left hand pages")));

headers.Add(RtfHeaderFooters.RIGHT_PAGES, new HeaderFooter(new Phrase("This header is only on right hand pages")));

第3步如同使用頁眉頁腳一樣使用RtfHeaderFooters

document.Header = headers;

使用RtfHeaderFooters.add(...)的常量:

FIRST_PAGE: 在你文檔的第一頁使用該頁眉或頁腳。你將使用rtfWriter.HasTitlePage = true來完成
LEFT_PAGES: 所有左邊頁均使用該頁眉或頁腳
RIGHT_PAGES: 所有右邊頁均使用該頁眉或頁腳
ALL_PAGES: 所有頁均使用該頁眉或頁腳,只有和FIRST_PAGE 結(jié)合使用才有意義。
有一件事非常重要:如果你使用LEFT_PAGES或者RIGHT_PAGES來設(shè)置頁眉或頁腳,再使用ALL_PAGES,頁眉和頁腳均不會(huì)起作用。

表格效果見示例代碼0804。

第三部分 iText的高級(jí)應(yīng)用
第九章 字體
本章原文講了許多字體的使用技巧,但就是沒有講如何使用中文,因此,意義不大,再說,如果不支持中文,前面的也就白翻譯了,因此,根據(jù)原文講到的一些知識(shí),我摸索出漢字的使用方法,自己寫了本章內(nèi)容,應(yīng)該算是“原創(chuàng)”了吧^_^(哎呀!誰拿雞蛋扔我……)。

Windows中一般都是使用TrueType字體,每個(gè)中文版Windows操作系統(tǒng)均默認(rèn)安裝了宋體、仿宋、黑體和楷體四種字體,你還可以安裝其他第三方字體,如安裝了Office 2000后,會(huì)自動(dòng)安裝華文行楷等字體,比較奇怪的是,在PDF文件中插入了一種本計(jì)算機(jī)才有的字體,在打開PDF文件的計(jì)算機(jī)上雖然沒有該字體,但仍然能正常顯示!這有別于Word文件,Word文件將當(dāng)前計(jì)算機(jī)中沒有的字體一律用宋體代替,這大概是意外收獲吧。

字體文件一般保存在windir\Fonts目錄中,擴(kuò)展名為TTF,還有擴(kuò)展名為TTC的字體文件,也是TrueType字體,不過是一個(gè)集合,也就是里面有多種字體。下面列出windows2000簡體中文版四種標(biāo)準(zhǔn)字體的文件名稱:

SIMSUN.TTC:宋體和新宋體

SIMKAI.TTF:楷體

SIMHEI.TTF:黑體

SIMFANG.TTF:仿宋體

TrueType字體應(yīng)用
按下面的方法寫入黑體字文字,大小為32磅:

BaseFont bfHei = BaseFont.createFont(@"c:\winnt\fonts\SIMHEI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

Font font = new Font(bfHei, 32);

String text = "這是黑體字測試!";

document.Add(new Paragraph(text, font));

不要管BaseFont.createFont方法第二、三個(gè)參數(shù)的意思,依葫蘆畫瓢就行了,第一個(gè)參數(shù)顯示就是字體文件存放的位置。

后面的代碼都非常好理解,不再贅述。

TruType字體集合的應(yīng)用
字體集合的使用同上面差不多,只是在在createFont方中要指定使用哪種字體。如:

BaseFont bfSun=BaseFont.createFont(@"c:\winnt\fonts\SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

font = new Font(bfSun, 16);

text = "這是字體集合中的新宋體測試!";

document.Add(new Paragraph(text, font));

不難看出,在使用BaseFont.createFont方法時(shí),第一個(gè)參數(shù)@"c:\winnt\fonts\SIMSUN.TTC,1"中多了一個(gè)“,1”,表示使用序號(hào)為1字體,序號(hào)為0的字體為宋體。

畢竟我們不是做排版軟件,有了上面的辦法就基本上夠用了,真正很復(fù)雜的PDF文件制作,不妨做成XML文件(最簡單的辦法就是用Word排版,然后另存為web頁了),然后按第七章的辦法轉(zhuǎn)換。

代碼見示例代碼0901。

第十章 圖象和文本的絕對(duì)位置
pdfContentByte
到目前為止,我們已經(jīng)使用了簡單的iText,我們已經(jīng)添加了文本、圖片、段落、章節(jié)、列表、表格等,沒有涉及到布局問題。Itext分割文本到每頁中,并將每個(gè)單詞、句子、段落布置到頁面上,但有時(shí)我們并不需要這種自動(dòng)格式,有時(shí)我們希望將一些圖象或者文本放置在某頁的指定位置,為實(shí)現(xiàn)該功能,我們將使用PdfContentByte類。

為代替第一章,僅用PdfWriter類的getInstance方法是不夠的,你必須真實(shí)地?fù)碛幸粋€(gè)PdfWriter對(duì)象,你可以通過在使用Writer對(duì)象中使用getDirectContent()方來得到該對(duì)象。例:

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf"));

PdfContentByte cb = writer.DirectContent;

說明:當(dāng)你添加高級(jí)對(duì)象(如表格)時(shí),兩個(gè)PdfContentByte對(duì)象將被內(nèi)部使用:一個(gè)用于文本,一個(gè)用用于圖象(如邊界或單元格背景)。文本繪制浮于圖象的上面。

當(dāng)你通過getDirectContent()方法直接使用PdfContentByte對(duì)象時(shí),你所添加的所有對(duì)象都將浮于文本和圖象。如果你想避免這種情況和希望添加內(nèi)容在圖象或文本的背后,你需要使用用getDirectContentUnder()方。

一句話,當(dāng)一頁完成時(shí),4層的重疊遵照如下順序:

1、 通過getDirectContentUnder()得到的PdfContentByte

2、 包含圖象或高級(jí)對(duì)象的內(nèi)部PdfContentByte

3、 病文本或高級(jí)對(duì)象的內(nèi)部PdfContentByte

4、 通過getDirectContent()得到的PdfContentByte

簡單圖形
在示例代碼1001中,繪制了一些簡單圖形,我們使用了諸如moveTo和lineTo方法來在移動(dòng)到頁面上當(dāng)前位置然后畫一條直線到其他位置。我們使用了諸如setLineWidth和setLineDash方法來改變直線的外觀,如:

cb.LineWidth = 10f;

cb.moveTo(100, 700);

cb.lineTo(200, 800);

cb.stroke();

說明:當(dāng)你改變諸如顏色、線寬等屬性時(shí),只有你在調(diào)用stroke方法時(shí)才起作用。在例中繪制三角形時(shí),我們?cè)O(shè)置顏色為綠色,在使用stroke方法前我們改變顏色為紅色,則繪制三角形的結(jié)果為為紅色而不是綠色,該例中還有矩形、圓等使用方法。

文本
當(dāng)你想將文本寫入ContentByte中時(shí),你必須使用方法beginText()和endText,你也必須設(shè)置字體和尺寸。就象圖形示例中一樣,還有許多方法用于寫入和放置文本,但你最需要的是方法showTextAligned和方法showText配合setTextMatrix。

例1:

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.beginText();

cb.setFontAndSize(bf, 12);

cb.showTextAligned(PdfContentByte.ALIGN_CENTER, text + "This text is centered", 250, 700, 0);

cb.endText();

例2:

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);

cb.beginText();

cb.setFontAndSize(bf, 12);

cb.setTextMatrix(100, 400);

cb.showText("Text at position 100,400.");

cb.endText();

請(qǐng)參見示例代碼1002。

模板(Form xObjects)
當(dāng)我們?cè)诘谒恼掠懻擁撁己晚撃_時(shí),我們定義了一小塊添加到每一頁的信息,實(shí)際上,該小塊信息寫到了文件的每一個(gè)新頁上。這并不是最經(jīng)濟(jì)的解決方案,更好的辦法是將該信息作為一個(gè)Form Xobject僅在文檔中添加一次,在其可見位置重復(fù)出現(xiàn)。我達(dá)到該目的,我們將使用模板。

u 創(chuàng)建一個(gè)PdfTemplate

u 創(chuàng)建PdfTemplate的最好方法是調(diào)用PdfContentByte對(duì)象中的createTemplate方法:

PdfContentByte-object:

PdfTemplate template = cb.createTemplate(500, 200);

這樣,該模板的寬度為500,高度為200。

通過該模板我們可以做象PdfContentByte同樣的事情

template.moveTo(0, 200);

template.lineTo(500, 0);

template.stroke();

template.beginText();

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);

template.setFontAndSize(bf, 12);

template.setTextMatrix(100, 100);

template.showText("Text at the position 100,100 (relative to the template!)");

template.endText();

u 添加一個(gè)模板到文檔

通過象下面一樣在絕對(duì)位置添加一個(gè)模板:

cb.addTemplate(template, 0, 400);

你還可以做一些有趣的事情,如縮放或旋轉(zhuǎn)他們:

//將模板旋轉(zhuǎn)90度

cb.addTemplate(template, 0, 1, -1, 0, 500, 200);

// 縮放模板為50%

cb.addTemplate(template, .5f, 0, 0, .5f, 100, 400);

//縮放模板為200%

cb.addTemplate(template, 2, 0, 0, 2, -200, 400);

具體演示見示例代碼1003。

u 第幾頁共幾頁

在一些情況下,你希望插入一些你在寫本頁時(shí)外殼無法知道的信息到文本中去,如:在一篇文檔的第一頁,你并不知道該文檔共有幾頁。只能在完成了整個(gè)文檔時(shí)才知道總的頁數(shù)。當(dāng)使用模板時(shí),該問題就不存在了。在示例代碼0103中,我們?cè)谔砑幽0宓紺ontentByte前添加了一些信息到模板中,這是沒有必要的。我們可以在任何時(shí)候添加信息到模板,因?yàn)閕Text添加Form Xobject是在PDF結(jié)束的地方(當(dāng)通過close方法關(guān)閉該文檔時(shí)調(diào)用)。示例代碼1004顯示了首先創(chuàng)建4頁然后添加總到頁數(shù),該例非常簡單和有用。

分欄
在本章以前,你已經(jīng)掌握了如何將文本放在一個(gè)絕對(duì)位置,這種情況下,我們要確定文本的開始坐標(biāo)。如果我們想知道文本的結(jié)束位置,我們得做一些計(jì)算工作。

現(xiàn)在我們要加一些文本到一個(gè)矩形框的內(nèi)部,希望文本到達(dá)右邊界時(shí)自動(dòng)換行。超出矩形部分將不顯示,可以通過ColumnText類實(shí)現(xiàn)。

舉個(gè)例子:

為顯示一個(gè)指定的短句在坐標(biāo)(100, 300)和(200, 500)間的矩形內(nèi)居中,我們使用下面的代碼:

PdfContentByte cb = writer.DirectContent;

ColumnText ct = new ColumnText(cb);

ct.setSimpleColumn(phrase, 60, 300, 100, 500, 15, Element.ALIGN_CENTER);

ct.go();

通過查看示例代碼1005,你會(huì)立即發(fā)現(xiàn)通過該方法可以可以畫一些復(fù)雜的表格而無須Table對(duì)象。

另一個(gè)例子:

沒有必要一次性將文本全部添加進(jìn)去,你可以先定義一個(gè)矩形,然后添加一些文本,最后用go方法顯示分欄。

PdfContentByte cb = writer.DirectContent;

ColumnText ct = new ColumnText(cb);

ct.setSim7pleColumn(60, 300, 100, 500, 15, Element.ALIGN_CENTER);

ct.addText(phrase1);

ct.addText(phrase2);

ct.addText(phrase3);

ct.go();

詳見示例代碼1006。

多欄

當(dāng)然,如果文本超出了矩形范圍,我們并不想丟失這些多出的文本,或許我們想將這些文本顯示到其他欄中。這就是為什么我們要查看go方法返回值的原因。如果返回標(biāo)識(shí)為“NO_MORE_COLUMN”,表示該欄中沒有足夠的空間存放該文本,如果所有的文本均顯示出來,標(biāo)識(shí)將為“NO_MORE_TEXT”。

請(qǐng)參見示例代碼1007。

不規(guī)則欄

定義一個(gè)非矩形的區(qū)域來顯示欄也是可能的,通過使用setColumns方法,我們?yōu)槲谋径x了一個(gè)左右邊界。

float[] left = {70,790, 70,60};

float[] right = {300,790, 300,700, 240,700, 240,590, 300,590, 300,106, 270,60};

ct.setColumns(left, right);

左邊界是一條直線,而右邊界是不規(guī)則的。該函數(shù)的結(jié)果可以導(dǎo)致一些非常有意思的布局,見示例代碼1008,本例中你將用到一個(gè)名為caesar_coin.jpg的圖片:


PdfTable
在第5章中,我們簡要地講述了PdfPTable對(duì)象,現(xiàn)在我們將討論該對(duì)象更多的的特性。

你可以用3種不同的方法創(chuàng)建PdfTable:

PdfPTable(float[] relativeWidths);

PdfPTable(int numColumns);

PdfPTable(PdfPTable table);

你可以給該表設(shè)置更多的參數(shù),如表寬度、列寬度、水平對(duì)齊方式等,你可以通過下面的辦法添加單元格:

public void addCell(PdfPCell cell);

public void addCell(PdfPTable table);

public void addCell(Phrase phrase);

public void addCell(String text);

除了單元格填距和和間距,這些方法同Table對(duì)象非常類似。這些參數(shù)對(duì)每個(gè)單元格個(gè)體進(jìn)行了設(shè)置,當(dāng)然,你可以設(shè)置單元格的默認(rèn)值,為改變單元格的默認(rèn)值,使用getDefaultCell()和調(diào)用一個(gè)或更多的類PdfPCell的方法(你可以設(shè)置對(duì)齊方式、間距、邊框、顏色甚至最低高度)。

注:通過PdfPTable,你能改變一個(gè)單元格的列跨度,但不能改變行跨度!在PdfPTable內(nèi)部是一些獨(dú)立的行,要讓它支持行跨度更改需要對(duì)PdfPTable對(duì)象進(jìn)行很大的調(diào)整,不要期望在近期內(nèi)實(shí)現(xiàn),你可以用嵌套表來解決這些問題。

你可以象第5章一樣將一個(gè)PdfPTable添加到當(dāng)前文檔中,但你也可以添加一個(gè)表在當(dāng)前頁中的絕對(duì)位置:

public float writeSelectedRows(int rowStart, int rowEnd, float xPos, float yPos, PdfContentByte canvas);

參數(shù)rowStart是你想開始的行的數(shù)目,參數(shù)rowEnd是你想顯示的最后的行(如果你想顯示所有的行,用-1),xPos和yPos是表格的坐標(biāo),canvas是一個(gè)PdfContentByte對(duì)象。在示例代碼1009中,我們添加了一個(gè)表在(100,600)處:

table.writeSelectedRows(0, -1, 100, 600, writer.DirectContent);

使用PdfPTable,你不能設(shè)置行跨度和(或)來跨度(怎么和上面的有點(diǎn)矛盾?)你可以使用嵌套表來解決,見示例代碼1010。

最后,示例代碼1011和示例代碼1012展示了PdfTable可以和templates 和 columns一起使用,在示例代碼1012中將用到cover.png圖片如下:


顏色(SpotColors)和圖案(Patterns)
顏色(spotcolors)的使用見示例代碼1013,示例代碼1014和示例代碼1015演示了圖案(patterns)的使用方法。

第十一章 本地和異地轉(zhuǎn)向、目標(biāo)和概要
本地轉(zhuǎn)向
有時(shí)你需要一個(gè)允許讀者從文檔的一個(gè)地方跳轉(zhuǎn)到另外一個(gè)地方的鏈接,你可以通過類Chunk的setLocalGoto 和setLocalDestination兩個(gè)方法實(shí)現(xiàn),例:

Chunk localgoto = new Chunk("this word", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 255))).setLocalGoto("test");

Chunk destination = new Chunk("local destination", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 255, 0))).setLocalDestination("test");

見示例代碼1101。

異地轉(zhuǎn)向
在第3章中,我們演示了一個(gè)錨點(diǎn)如何轉(zhuǎn)向到其他URL,一個(gè)錨點(diǎn)通過不同的字體、風(fēng)格和顏色,可以包含不同的Chunks,在iText的高級(jí)應(yīng)用中,下面定義鏈接到URL的其他方法:

Chunk chunk = new Chunk("anchor", FontFactory.getFont(FontFactory.HELVETICA, 12)).setAnchor(new URL("http://www.lowagie.com/iText/"));

u 轉(zhuǎn)到PDF文檔中的指定位置

如果你在文檔中指定了一個(gè)目的地,你可以從另外一個(gè)文檔跳轉(zhuǎn)到這里,為實(shí)現(xiàn)該功能,你可以使用方法:

setRemoteGoto: Chunk chunk = new Chunk("jump", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC)).setRemoteGoto("test.pdf", "test"));

test.pdf是另外一個(gè)pdf文件,”test”是該文件的一個(gè)目的地。

跳轉(zhuǎn)到另一個(gè)PDF文件指定頁

使用方法setRemoteGoto,用頁碼參數(shù)代替名稱參數(shù),可以非常容易地跳轉(zhuǎn)定另外一個(gè)文檔的指定頁:

chunk = new Chunk("jump", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC)).setRemoteGoto("test.pdf", 3));

見示例代碼1102

u 啟動(dòng)一個(gè)應(yīng)用程序

可以使用下面的方法啟動(dòng)一個(gè)應(yīng)用程序:

public PdfAction(String application, String parameters, String operation, String defaultDir)

如果application為“c:/winnt/notepad.exe”(其余參數(shù)可以為null),你可以通過PDF文件中的鏈接來啟動(dòng)記事本程序。

u 文件和URL

如果你想跳轉(zhuǎn)到其他文檔或URL,你需要通過下面的構(gòu)造函數(shù)之一創(chuàng)建一個(gè):

PdfAction(String filename, String name);

PdfAction(String filename, int page);

PdfAction(URL url);

PdfAction(String url);

前面兩個(gè)構(gòu)造函數(shù)允許你跳轉(zhuǎn)到文件的指定位置或頁碼,后兩個(gè)構(gòu)造函數(shù)允許你跳轉(zhuǎn)到其他URL上。

其余部分略。

第十二章 頁面和表格事件
略。

轉(zhuǎn)載于:https://www.cnblogs.com/floatping/archive/2005/09/18/239113.html

總結(jié)

以上是生活随笔為你收集整理的制作PDF文件全攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

性生交大片免费看l | 国产精品毛多多水多 | 国产超碰人人爽人人做人人添 | 亚洲精品中文字幕久久久久 | 少妇太爽了在线观看 | 亚洲国产欧美国产综合一区 | 国产人妻大战黑人第1集 | 欧美日韩综合一区二区三区 | 国产精品久免费的黄网站 | 女人被男人爽到呻吟的视频 | 国产69精品久久久久app下载 | 精品一区二区三区无码免费视频 | 国产极品视觉盛宴 | 国产无遮挡又黄又爽免费视频 | 乌克兰少妇xxxx做受 | 东北女人啪啪对白 | 强辱丰满人妻hd中文字幕 | 久久午夜夜伦鲁鲁片无码免费 | 99精品久久毛片a片 | 亚洲国产精品久久久久久 | 精品久久久无码中文字幕 | 少女韩国电视剧在线观看完整 | 精品水蜜桃久久久久久久 | 国产超级va在线观看视频 | yw尤物av无码国产在线观看 | 亚洲综合另类小说色区 | 婷婷丁香六月激情综合啪 | 亚洲国产精品一区二区第一页 | 国产乱码精品一品二品 | 国产三级精品三级男人的天堂 | 久久精品国产亚洲精品 | 国产手机在线αⅴ片无码观看 | 中文字幕+乱码+中文字幕一区 | 国产精品多人p群无码 | 国产精品美女久久久网av | 天天拍夜夜添久久精品 | 无码av最新清无码专区吞精 | 国产绳艺sm调教室论坛 | 欧美国产亚洲日韩在线二区 | 人妻少妇被猛烈进入中文字幕 | 国产日产欧产精品精品app | 久久久久久久女国产乱让韩 | 日本护士xxxxhd少妇 | 国产精品久久久久无码av色戒 | 国产精品久久久久久亚洲毛片 | 97精品人妻一区二区三区香蕉 | 国产亚洲人成在线播放 | 中文精品无码中文字幕无码专区 | 免费中文字幕日韩欧美 | 伊人久久婷婷五月综合97色 | 欧美性生交xxxxx久久久 | 97资源共享在线视频 | 疯狂三人交性欧美 | 国产suv精品一区二区五 | 国产色视频一区二区三区 | 日本护士xxxxhd少妇 | 宝宝好涨水快流出来免费视频 | 漂亮人妻洗澡被公强 日日躁 | 性欧美videos高清精品 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 婷婷丁香六月激情综合啪 | 女人被男人躁得好爽免费视频 | 日韩精品乱码av一区二区 | 九月婷婷人人澡人人添人人爽 | 国产av一区二区三区最新精品 | 亚洲国产综合无码一区 | 久久久久久久久蜜桃 | 无码国模国产在线观看 | 久久婷婷五月综合色国产香蕉 | 国产人妻久久精品二区三区老狼 | 国产成人精品三级麻豆 | 亚洲成av人综合在线观看 | 无码福利日韩神码福利片 | а√天堂www在线天堂小说 | 丝袜 中出 制服 人妻 美腿 | 亚洲精品一区二区三区在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 麻豆国产人妻欲求不满谁演的 | 亚洲啪av永久无码精品放毛片 | 鲁大师影院在线观看 | 无码国产乱人伦偷精品视频 | 一本色道久久综合狠狠躁 | 狠狠综合久久久久综合网 | 国产精品99爱免费视频 | 人人澡人人妻人人爽人人蜜桃 | 熟妇激情内射com | 久久亚洲中文字幕精品一区 | 欧美激情综合亚洲一二区 | 特黄特色大片免费播放器图片 | 国产特级毛片aaaaaaa高清 | 丰满少妇熟乱xxxxx视频 | 国产口爆吞精在线视频 | 国产精品香蕉在线观看 | 人人妻人人澡人人爽欧美精品 | 亚洲狠狠色丁香婷婷综合 | 99久久精品日本一区二区免费 | 日日摸天天摸爽爽狠狠97 | 双乳奶水饱满少妇呻吟 | 国产精品无码永久免费888 | 久久久久人妻一区精品色欧美 | 无码人妻少妇伦在线电影 | 久久亚洲精品成人无码 | 日韩欧美群交p片內射中文 | 免费无码的av片在线观看 | 中国女人内谢69xxxx | 国内综合精品午夜久久资源 | 日本欧美一区二区三区乱码 | 纯爱无遮挡h肉动漫在线播放 | 欧美放荡的少妇 | 成 人 网 站国产免费观看 | 亚洲熟女一区二区三区 | 久久综合网欧美色妞网 | 在线观看国产午夜福利片 | 亚洲国产欧美国产综合一区 | 一二三四在线观看免费视频 | 日韩少妇内射免费播放 | 少妇无码吹潮 | 免费国产成人高清在线观看网站 | 强奷人妻日本中文字幕 | 3d动漫精品啪啪一区二区中 | 欧美黑人巨大xxxxx | 亚洲国产精品无码久久久久高潮 | 搡女人真爽免费视频大全 | 最近的中文字幕在线看视频 | 亚洲精品一区二区三区大桥未久 | 亚洲中文字幕av在天堂 | 精品欧美一区二区三区久久久 | 在线播放无码字幕亚洲 | 老熟妇仑乱视频一区二区 | 亚洲人亚洲人成电影网站色 | 欧美精品免费观看二区 | 色妞www精品免费视频 | 国产精品亚洲五月天高清 | 久久精品中文字幕大胸 | 国产真人无遮挡作爱免费视频 | 在线看片无码永久免费视频 | 最近免费中文字幕中文高清百度 | 亚洲va欧美va天堂v国产综合 | 午夜精品一区二区三区在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产无av码在线观看 | 四虎国产精品免费久久 | 精品国产一区二区三区四区 | 装睡被陌生人摸出水好爽 | 99久久久无码国产精品免费 | 亚洲国产午夜精品理论片 | 亚洲精品国产品国语在线观看 | 97无码免费人妻超级碰碰夜夜 | 久久久中文字幕日本无吗 | 欧美日韩在线亚洲综合国产人 | av人摸人人人澡人人超碰下载 | 日韩人妻系列无码专区 | 午夜肉伦伦影院 | 97夜夜澡人人双人人人喊 | 欧美日韩色另类综合 | 国产性生大片免费观看性 | а√天堂www在线天堂小说 | 亚洲gv猛男gv无码男同 | 波多野42部无码喷潮在线 | 丰满人妻一区二区三区免费视频 | 国产97在线 | 亚洲 | 亚洲国产av精品一区二区蜜芽 | 婷婷丁香五月天综合东京热 | 中文精品无码中文字幕无码专区 | 狠狠色欧美亚洲狠狠色www | 精品少妇爆乳无码av无码专区 | 日韩精品一区二区av在线 | 97色伦图片97综合影院 | av在线亚洲欧洲日产一区二区 | 荫蒂被男人添的好舒服爽免费视频 | 国内精品人妻无码久久久影院 | 夜夜躁日日躁狠狠久久av | 亚洲一区二区三区在线观看网站 | 中文字幕av日韩精品一区二区 | 国产成人久久精品流白浆 | 精品厕所偷拍各类美女tp嘘嘘 | 国产av久久久久精东av | 大色综合色综合网站 | a片免费视频在线观看 | 中文字幕av日韩精品一区二区 | 亚洲国产成人a精品不卡在线 | 激情国产av做激情国产爱 | 无人区乱码一区二区三区 | 无码av中文字幕免费放 | 日本一卡2卡3卡四卡精品网站 | 亚洲日韩精品欧美一区二区 | 日本乱偷人妻中文字幕 | 久久国产劲爆∧v内射 | 精品乱码久久久久久久 | 免费无码午夜福利片69 | 欧美精品国产综合久久 | 老头边吃奶边弄进去呻吟 | 亚洲欧美色中文字幕在线 | 一本久久伊人热热精品中文字幕 | 午夜丰满少妇性开放视频 | 国产精品手机免费 | 亚洲国产精品无码久久久久高潮 | 蜜桃视频插满18在线观看 | 骚片av蜜桃精品一区 | 国产精品va在线播放 | 亚洲精品国偷拍自产在线麻豆 | 精品日本一区二区三区在线观看 | 中文字幕日韩精品一区二区三区 | 日韩av无码一区二区三区不卡 | 欧洲vodafone精品性 | 国产精品国产三级国产专播 | 国产亚洲日韩欧美另类第八页 | 波多野结衣av一区二区全免费观看 | 国产性生交xxxxx无码 | 国产免费久久久久久无码 | 欧美 丝袜 自拍 制服 另类 | 高潮毛片无遮挡高清免费 | 成人av无码一区二区三区 | 色情久久久av熟女人妻网站 | 国色天香社区在线视频 | 成人亚洲精品久久久久软件 | 美女黄网站人色视频免费国产 | 欧美精品国产综合久久 | 久久综合九色综合97网 | 3d动漫精品啪啪一区二区中 | a在线观看免费网站大全 | 一本大道伊人av久久综合 | 乱人伦人妻中文字幕无码久久网 | 中文字幕乱码中文乱码51精品 | 男女超爽视频免费播放 | 嫩b人妻精品一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 精品日本一区二区三区在线观看 | 亚洲国产欧美国产综合一区 | 欧美性黑人极品hd | 国产精品无码成人午夜电影 | 正在播放东北夫妻内射 | 日本免费一区二区三区最新 | 日韩视频 中文字幕 视频一区 | 狠狠色欧美亚洲狠狠色www | 熟妇人妻激情偷爽文 | 亚洲中文字幕久久无码 | 黑森林福利视频导航 | 国产一区二区三区影院 | 日韩欧美成人免费观看 | 色窝窝无码一区二区三区色欲 | 正在播放老肥熟妇露脸 | 国产av一区二区精品久久凹凸 | 久久亚洲精品中文字幕无男同 | a在线观看免费网站大全 | 欧美亚洲日韩国产人成在线播放 | 天天燥日日燥 | 日本精品人妻无码77777 天堂一区人妻无码 | 欧美日韩亚洲国产精品 | a片免费视频在线观看 | 中文字幕乱码中文乱码51精品 | a片在线免费观看 | 国产精品久久久一区二区三区 | 国产精品va在线观看无码 | 国产麻豆精品精东影业av网站 | 欧美丰满少妇xxxx性 | 国产精品资源一区二区 | 亚洲熟女一区二区三区 | 天天综合网天天综合色 | 小鲜肉自慰网站xnxx | 中文久久乱码一区二区 | 欧美 日韩 人妻 高清 中文 | 国产农村妇女高潮大叫 | 精品人人妻人人澡人人爽人人 | 亚洲成av人片在线观看无码不卡 | 久久午夜无码鲁丝片秋霞 | 18无码粉嫩小泬无套在线观看 | 999久久久国产精品消防器材 | 国产无套内射久久久国产 | 久久久久久亚洲精品a片成人 | 成熟人妻av无码专区 | 撕开奶罩揉吮奶头视频 | 久久久精品国产sm最大网站 | 精品国偷自产在线视频 | 欧美真人作爱免费视频 | 中文无码成人免费视频在线观看 | 国产女主播喷水视频在线观看 | 人妻夜夜爽天天爽三区 | 国模大胆一区二区三区 | 午夜丰满少妇性开放视频 | 国产精品久久久 | 久久亚洲日韩精品一区二区三区 | 国产无套内射久久久国产 | 国产乱人偷精品人妻a片 | 蜜臀aⅴ国产精品久久久国产老师 | 2020久久香蕉国产线看观看 | 男女猛烈xx00免费视频试看 | 乱人伦人妻中文字幕无码久久网 | 丰满人妻一区二区三区免费视频 | 亚洲男人av香蕉爽爽爽爽 | 亚洲精品鲁一鲁一区二区三区 | 婷婷综合久久中文字幕蜜桃三电影 | 蜜桃臀无码内射一区二区三区 | 亚洲第一网站男人都懂 | 少妇邻居内射在线 | 一本久道久久综合婷婷五月 | 久久久无码中文字幕久... | 蜜桃臀无码内射一区二区三区 | 人妻夜夜爽天天爽三区 | 奇米影视7777久久精品 | 两性色午夜视频免费播放 | 国产精品人妻一区二区三区四 | 国产两女互慰高潮视频在线观看 | 成人一在线视频日韩国产 | 2020最新国产自产精品 | 无码一区二区三区在线 | 国产乱码精品一品二品 | 久久久久久亚洲精品a片成人 | 欧洲欧美人成视频在线 | 骚片av蜜桃精品一区 | 狠狠躁日日躁夜夜躁2020 | 久久精品国产精品国产精品污 | 欧美熟妇另类久久久久久不卡 | 亚洲自偷精品视频自拍 | 国产亚洲精品久久久久久久久动漫 | 麻豆精品国产精华精华液好用吗 | 国产偷自视频区视频 | 麻花豆传媒剧国产免费mv在线 | 亚洲成av人片在线观看无码不卡 | 国产真实夫妇视频 | 又大又硬又爽免费视频 | 疯狂三人交性欧美 | 国产成人精品无码播放 | 欧美性色19p | 久久熟妇人妻午夜寂寞影院 | 特级做a爰片毛片免费69 | 无码av中文字幕免费放 | 午夜精品久久久久久久久 | 日本大香伊一区二区三区 | 麻豆国产人妻欲求不满谁演的 | 小泽玛莉亚一区二区视频在线 | 波多野42部无码喷潮在线 | 欧美性生交活xxxxxdddd | 丰满岳乱妇在线观看中字无码 | 亚洲国产欧美在线成人 | 999久久久国产精品消防器材 | 欧美freesex黑人又粗又大 | 国产人妻大战黑人第1集 | 国产av无码专区亚洲awww | 成人无码视频免费播放 | 三上悠亚人妻中文字幕在线 | 少妇性l交大片欧洲热妇乱xxx | 日韩精品久久久肉伦网站 | 高潮毛片无遮挡高清免费视频 | 国产一区二区三区四区五区加勒比 | 永久黄网站色视频免费直播 | 国产莉萝无码av在线播放 | 动漫av一区二区在线观看 | 午夜福利一区二区三区在线观看 | 色情久久久av熟女人妻网站 | 国产激情一区二区三区 | 久久久久国色av免费观看性色 | 国产精品第一国产精品 | 少妇一晚三次一区二区三区 | 人妻插b视频一区二区三区 | 日韩无码专区 | 国产亚洲精品久久久闺蜜 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲国产精品成人久久蜜臀 | 国产精品美女久久久 | 久久综合久久自在自线精品自 | 色综合久久久无码网中文 | 国产一区二区三区影院 | 丝袜美腿亚洲一区二区 | 成熟女人特级毛片www免费 | 国产极品视觉盛宴 | 中文字幕无码视频专区 | 性生交大片免费看l | 亚洲中文字幕在线无码一区二区 | 国产午夜手机精彩视频 | 国产日产欧产精品精品app | 一本无码人妻在中文字幕免费 | 中国大陆精品视频xxxx | 人人爽人人澡人人人妻 | 人妻无码久久精品人妻 | 亚洲熟妇色xxxxx欧美老妇y | 精品成人av一区二区三区 | 日日天日日夜日日摸 | 在线精品国产一区二区三区 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲色www成人永久网址 | 97色伦图片97综合影院 | 久久午夜夜伦鲁鲁片无码免费 | 18禁黄网站男男禁片免费观看 | 中文字幕 亚洲精品 第1页 | 国产精品第一区揄拍无码 | 久久婷婷五月综合色国产香蕉 | 亚洲阿v天堂在线 | 久久久久久九九精品久 | 青春草在线视频免费观看 | 亚洲国产av精品一区二区蜜芽 | 成人精品视频一区二区三区尤物 | 黑人巨大精品欧美一区二区 | 国产一精品一av一免费 | 国产色在线 | 国产 | 久久久久亚洲精品中文字幕 | 九九久久精品国产免费看小说 | 精品久久久无码中文字幕 | 中文亚洲成a人片在线观看 | 又大又硬又爽免费视频 | 欧美人与动性行为视频 | 色五月五月丁香亚洲综合网 | 亚洲国产日韩a在线播放 | 丰腴饱满的极品熟妇 | 欧美亚洲日韩国产人成在线播放 | 澳门永久av免费网站 | 日本护士xxxxhd少妇 | 久久久久国色av免费观看性色 | 日韩 欧美 动漫 国产 制服 | 成年美女黄网站色大免费视频 | 少妇无码av无码专区在线观看 | √天堂资源地址中文在线 | 国产偷抇久久精品a片69 | 成人片黄网站色大片免费观看 | 中文字幕无码免费久久99 | 天堂无码人妻精品一区二区三区 | 日日摸夜夜摸狠狠摸婷婷 | 美女极度色诱视频国产 | 亚洲国产日韩a在线播放 | 久久精品99久久香蕉国产色戒 | 无套内射视频囯产 | 牲欲强的熟妇农村老妇女 | 国产亚洲日韩欧美另类第八页 | 999久久久国产精品消防器材 | 无码纯肉视频在线观看 | 亚洲精品国产精品乱码不卡 | 无码乱肉视频免费大全合集 | 精品国产一区二区三区av 性色 | 精品一二三区久久aaa片 | 天天摸天天透天天添 | 久青草影院在线观看国产 | 国产精品人人妻人人爽 | 国产午夜亚洲精品不卡 | 内射巨臀欧美在线视频 | 老司机亚洲精品影院无码 | 99久久久无码国产aaa精品 | 久久精品中文字幕一区 | 四十如虎的丰满熟妇啪啪 | 人人爽人人爽人人片av亚洲 | 99久久久无码国产aaa精品 | 国内少妇偷人精品视频 | 成人精品视频一区二区 | 国产精品va在线观看无码 | 男女超爽视频免费播放 | 亚洲一区二区三区播放 | 亚洲国产av精品一区二区蜜芽 | 一本一道久久综合久久 | 清纯唯美经典一区二区 | 久久综合狠狠综合久久综合88 | 欧美人与禽猛交狂配 | 无码国模国产在线观看 | 性欧美大战久久久久久久 | 无码精品国产va在线观看dvd | 日本va欧美va欧美va精品 | 熟女少妇人妻中文字幕 | 少妇邻居内射在线 | 中文久久乱码一区二区 | 粉嫩少妇内射浓精videos | 97久久国产亚洲精品超碰热 | 国产精品久久久 | 亚洲精品一区二区三区大桥未久 | 亚洲一区二区三区播放 | 国产精品香蕉在线观看 | 狠狠躁日日躁夜夜躁2020 | 欧美黑人巨大xxxxx | 美女扒开屁股让男人桶 | 中文字幕日韩精品一区二区三区 | 精品国产一区二区三区四区在线看 | 亚洲综合色区中文字幕 | 熟妇人妻无码xxx视频 | 成人亚洲精品久久久久软件 | 一个人看的视频www在线 | 欧美三级a做爰在线观看 | 麻豆国产人妻欲求不满谁演的 | 成人精品视频一区二区 | 亚洲国产精品久久人人爱 | 国产人妖乱国产精品人妖 | 51国偷自产一区二区三区 | 中文无码伦av中文字幕 | 精品日本一区二区三区在线观看 | 人妻中文无码久热丝袜 | 香蕉久久久久久av成人 | 熟妇人妻中文av无码 | 国产三级精品三级男人的天堂 | 日韩亚洲欧美中文高清在线 | 美女黄网站人色视频免费国产 | 一本大道伊人av久久综合 | 国产精品-区区久久久狼 | 成人女人看片免费视频放人 | 天堂а√在线地址中文在线 | 久久精品一区二区三区四区 | 国产内射爽爽大片视频社区在线 | 欧美性猛交xxxx富婆 | 狠狠色噜噜狠狠狠7777奇米 | 妺妺窝人体色www在线小说 | 牲交欧美兽交欧美 | 午夜福利一区二区三区在线观看 | 欧美真人作爱免费视频 | yw尤物av无码国产在线观看 | 牲交欧美兽交欧美 | 久久国语露脸国产精品电影 | 无码精品人妻一区二区三区av | 国产成人无码a区在线观看视频app | 亚洲人成影院在线观看 | 久久国产劲爆∧v内射 | 狠狠色欧美亚洲狠狠色www | 天天躁日日躁狠狠躁免费麻豆 | 久久无码中文字幕免费影院蜜桃 | 国产精品视频免费播放 | 俺去俺来也www色官网 | 国产欧美亚洲精品a | 亚洲天堂2017无码中文 | 300部国产真实乱 | 亚洲欧洲日本综合aⅴ在线 | 欧美激情一区二区三区成人 | 99久久99久久免费精品蜜桃 | 性史性农村dvd毛片 | 久久国产劲爆∧v内射 | 精品国产精品久久一区免费式 | 日韩人妻系列无码专区 | 成在人线av无码免费 | 乱码av麻豆丝袜熟女系列 | 欧美成人免费全部网站 | 精品亚洲成av人在线观看 | 国产又爽又黄又刺激的视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 人人妻人人藻人人爽欧美一区 | 午夜肉伦伦影院 | 人妻少妇精品无码专区二区 | 三上悠亚人妻中文字幕在线 | 色噜噜亚洲男人的天堂 | 日日麻批免费40分钟无码 | 成人免费视频视频在线观看 免费 | 国产麻豆精品一区二区三区v视界 | 国产在线无码精品电影网 | 国产极品美女高潮无套在线观看 | 久久国语露脸国产精品电影 | 亚洲日韩av一区二区三区中文 | 亚洲综合久久一区二区 | 小sao货水好多真紧h无码视频 | 国产精品久久久久无码av色戒 | √天堂中文官网8在线 | 中文字幕 亚洲精品 第1页 | 女人被爽到呻吟gif动态图视看 | 国产美女极度色诱视频www | 国产成人无码av片在线观看不卡 | 国产人妻精品一区二区三区不卡 | 久久午夜无码鲁丝片秋霞 | 99久久亚洲精品无码毛片 | 久久国产自偷自偷免费一区调 | 国产精品久久久久无码av色戒 | 99久久久无码国产精品免费 | 亚洲国产精品一区二区第一页 | 激情五月综合色婷婷一区二区 | √天堂资源地址中文在线 | 亚洲国产精品一区二区第一页 | 久久精品国产99精品亚洲 | 亚洲国精产品一二二线 | 国产免费观看黄av片 | 成人精品一区二区三区中文字幕 | 国产激情综合五月久久 | 永久免费观看美女裸体的网站 | 日本大乳高潮视频在线观看 | 中文字幕精品av一区二区五区 | 大肉大捧一进一出好爽视频 | 亚洲中文字幕无码中字 | 精品少妇爆乳无码av无码专区 | 免费中文字幕日韩欧美 | 精品国产一区二区三区四区在线看 | 99麻豆久久久国产精品免费 | 无码人妻丰满熟妇区五十路百度 | 97久久国产亚洲精品超碰热 | 日日碰狠狠丁香久燥 | 国产乱人伦偷精品视频 | 成熟妇人a片免费看网站 | 丰满岳乱妇在线观看中字无码 | 国产人妻精品一区二区三区 | 丰满妇女强制高潮18xxxx | www国产亚洲精品久久网站 | 99精品无人区乱码1区2区3区 | 黑人巨大精品欧美黑寡妇 | 亚洲精品中文字幕乱码 | 俺去俺来也在线www色官网 | 无码乱肉视频免费大全合集 | 久久国产劲爆∧v内射 | 日韩在线不卡免费视频一区 | 成人精品视频一区二区 | 国产精品久久久午夜夜伦鲁鲁 | 女人被男人躁得好爽免费视频 | 爽爽影院免费观看 | 美女扒开屁股让男人桶 | 樱花草在线社区www | 亚欧洲精品在线视频免费观看 | 亚洲啪av永久无码精品放毛片 | 久久精品丝袜高跟鞋 | 亚洲色欲色欲欲www在线 | 玩弄中年熟妇正在播放 | 久久精品国产精品国产精品污 | 噜噜噜亚洲色成人网站 | 丰满护士巨好爽好大乳 | 欧美阿v高清资源不卡在线播放 | 国产精品久久久久7777 | 精品无人国产偷自产在线 | 亚洲日本在线电影 | 曰韩少妇内射免费播放 | 精品aⅴ一区二区三区 | 久久99精品久久久久婷婷 | 国产精品-区区久久久狼 | 东京一本一道一二三区 | 少妇被粗大的猛进出69影院 | 中文毛片无遮挡高清免费 | 少妇太爽了在线观看 | 国内少妇偷人精品视频 | 欧美日韩在线亚洲综合国产人 | 精品国产国产综合精品 | 性生交大片免费看女人按摩摩 | 欧美一区二区三区 | 精品 日韩 国产 欧美 视频 | 亚洲色欲久久久综合网东京热 | 性生交片免费无码看人 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲中文字幕无码一久久区 | 色婷婷香蕉在线一区二区 | 免费网站看v片在线18禁无码 | 东北女人啪啪对白 | 大肉大捧一进一出视频出来呀 | 性生交片免费无码看人 | 久久亚洲精品成人无码 | 老司机亚洲精品影院 | 欧美色就是色 | 奇米影视888欧美在线观看 | 国产精品99爱免费视频 | 久久精品中文闷骚内射 | 四虎国产精品免费久久 | 亚洲中文字幕va福利 | 亚洲男女内射在线播放 | 国产精品无码mv在线观看 | 狠狠噜狠狠狠狠丁香五月 | v一区无码内射国产 | 欧美国产日韩久久mv | 无码人妻丰满熟妇区五十路百度 | 亚洲综合伊人久久大杳蕉 | 亚洲国精产品一二二线 | 亚洲无人区一区二区三区 | 亚洲一区二区三区国产精华液 | 一个人看的www免费视频在线观看 | 在线精品国产一区二区三区 | 国产精品亚洲一区二区三区喷水 | 日产精品99久久久久久 | 秋霞特色aa大片 | 国产一精品一av一免费 | 99久久精品国产一区二区蜜芽 | 免费人成网站视频在线观看 | 久久久久se色偷偷亚洲精品av | 国产另类ts人妖一区二区 | 中文毛片无遮挡高清免费 | 给我免费的视频在线观看 | 国产美女精品一区二区三区 | 4hu四虎永久在线观看 | 中文字幕无码av激情不卡 | 亚洲精品www久久久 | 日韩精品无码一本二本三本色 | 无码精品国产va在线观看dvd | 欧美 亚洲 国产 另类 | 无码人中文字幕 | а√天堂www在线天堂小说 | 日本高清一区免费中文视频 | 国内少妇偷人精品视频 | 国产精品丝袜黑色高跟鞋 | 一本久久伊人热热精品中文字幕 | √天堂资源地址中文在线 | 欧美日韩视频无码一区二区三 | 一本色道婷婷久久欧美 | 特黄特色大片免费播放器图片 | 亚洲人亚洲人成电影网站色 | 在线精品国产一区二区三区 | 黑人巨大精品欧美一区二区 | 久热国产vs视频在线观看 | 亚洲中文字幕久久无码 | 天堂在线观看www | 精品无码一区二区三区爱欲 | 国产精品美女久久久 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲狠狠婷婷综合久久 | 欧美日韩久久久精品a片 | 国产在线一区二区三区四区五区 | 久久天天躁夜夜躁狠狠 | 亚洲国精产品一二二线 | 中文字幕日产无线码一区 | 色综合久久网 | 亚洲国产高清在线观看视频 | 又湿又紧又大又爽a视频国产 | 1000部啪啪未满十八勿入下载 | 蜜桃av抽搐高潮一区二区 | 亚洲综合色区中文字幕 | 狠狠色色综合网站 | 玩弄人妻少妇500系列视频 | 女人和拘做爰正片视频 | 国产午夜无码视频在线观看 | 久久亚洲中文字幕精品一区 | 亚洲日韩精品欧美一区二区 | 午夜无码人妻av大片色欲 | 内射欧美老妇wbb | 久久精品一区二区三区四区 | 天天摸天天碰天天添 | 免费中文字幕日韩欧美 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 波多野结衣 黑人 | 色一情一乱一伦一视频免费看 | 中文字幕av无码一区二区三区电影 | 麻豆国产人妻欲求不满谁演的 | 国产精华av午夜在线观看 | 国产成人无码av一区二区 | 亚洲熟女一区二区三区 | 午夜福利一区二区三区在线观看 | 麻豆av传媒蜜桃天美传媒 | 国产凸凹视频一区二区 | 成人无码精品一区二区三区 | 亚洲人交乣女bbw | 97无码免费人妻超级碰碰夜夜 | 无码人妻久久一区二区三区不卡 | а√天堂www在线天堂小说 | 久久久亚洲欧洲日产国码αv | 国产9 9在线 | 中文 | 2019nv天堂香蕉在线观看 | 亚洲熟妇色xxxxx欧美老妇 | 少妇高潮一区二区三区99 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 无码纯肉视频在线观看 | 久久亚洲精品中文字幕无男同 | 欧美日本免费一区二区三区 | 久久久久成人片免费观看蜜芽 | 国产亚洲精品久久久久久国模美 | 免费人成在线观看网站 | 中文精品无码中文字幕无码专区 | 99国产精品白浆在线观看免费 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品第一国产精品 | 丰满少妇高潮惨叫视频 | 青草青草久热国产精品 | √8天堂资源地址中文在线 | 免费网站看v片在线18禁无码 | 亚洲精品国产精品乱码不卡 | 国产三级精品三级男人的天堂 | 一区二区传媒有限公司 | 青草视频在线播放 | 无码av免费一区二区三区试看 | 曰韩少妇内射免费播放 | 午夜男女很黄的视频 | 国产高潮视频在线观看 | 激情国产av做激情国产爱 | 久久99久久99精品中文字幕 | 影音先锋中文字幕无码 | 激情综合激情五月俺也去 | 色爱情人网站 | 人妻人人添人妻人人爱 | 内射后入在线观看一区 | 疯狂三人交性欧美 | 国产深夜福利视频在线 | 少妇无码av无码专区在线观看 | 日韩亚洲欧美中文高清在线 | 欧美激情内射喷水高潮 | 中文字幕日韩精品一区二区三区 | 国产精品高潮呻吟av久久4虎 | 亚洲第一网站男人都懂 | 国产又粗又硬又大爽黄老大爷视 | 国产熟妇高潮叫床视频播放 | 国产午夜精品一区二区三区嫩草 | www国产亚洲精品久久网站 | 久久久久久久人妻无码中文字幕爆 | 精品偷自拍另类在线观看 | 国产在线aaa片一区二区99 | 午夜精品久久久久久久 | 亚洲中文字幕va福利 | 国产香蕉尹人综合在线观看 | 一个人看的视频www在线 | 国色天香社区在线视频 | 亚洲国产精品一区二区美利坚 | 日本大香伊一区二区三区 | 久久精品国产一区二区三区 | 无码人妻精品一区二区三区下载 | 清纯唯美经典一区二区 | 精品国产麻豆免费人成网站 | 激情亚洲一区国产精品 | 亚洲aⅴ无码成人网站国产app | 在线观看国产午夜福利片 | 国产亚洲精品久久久久久久久动漫 | 欧美自拍另类欧美综合图片区 | 亚洲熟妇色xxxxx欧美老妇 | 亚无码乱人伦一区二区 | 人人妻人人澡人人爽欧美一区九九 | 97无码免费人妻超级碰碰夜夜 | 丁香花在线影院观看在线播放 | 国产99久久精品一区二区 | 久久天天躁夜夜躁狠狠 | 67194成是人免费无码 | 国产精华av午夜在线观看 | 国产区女主播在线观看 | 亚洲一区二区三区在线观看网站 | 国产人妻精品一区二区三区 | 色妞www精品免费视频 | 又色又爽又黄的美女裸体网站 | 国产乱人无码伦av在线a | 中文字幕亚洲情99在线 | 无码乱肉视频免费大全合集 | 国产亚洲精品久久久闺蜜 | 婷婷五月综合缴情在线视频 | 精品国产乱码久久久久乱码 | 波多野结衣 黑人 | 未满小14洗澡无码视频网站 | 中文字幕日产无线码一区 | 领导边摸边吃奶边做爽在线观看 | 精品人妻人人做人人爽 | 综合人妻久久一区二区精品 | 久久亚洲国产成人精品性色 | 婷婷丁香六月激情综合啪 | 亚洲精品欧美二区三区中文字幕 | 亚洲成av人片在线观看无码不卡 | 性欧美熟妇videofreesex | 极品嫩模高潮叫床 | 国产99久久精品一区二区 | 国产又爽又黄又刺激的视频 | 亚洲中文字幕无码中文字在线 | 好男人www社区 | 亚洲娇小与黑人巨大交 | 国产av剧情md精品麻豆 | 国产精品久久久久9999小说 | a在线亚洲男人的天堂 | 国产精品亚洲lv粉色 | 真人与拘做受免费视频 | 欧美肥老太牲交大战 | 免费观看激色视频网站 | 97人妻精品一区二区三区 | 青青青爽视频在线观看 | 桃花色综合影院 | 亚洲综合久久一区二区 | 国产人妻精品一区二区三区 | 久久综合久久自在自线精品自 | 久久99精品久久久久久 | 国产成人无码区免费内射一片色欲 | 国产成人精品三级麻豆 | 亚洲无人区一区二区三区 | 无码av岛国片在线播放 | 午夜无码人妻av大片色欲 | 精品国产一区二区三区av 性色 | 丰满护士巨好爽好大乳 | 国产成人综合美国十次 | 台湾无码一区二区 | 国产人妻精品午夜福利免费 | 亚洲一区二区三区 | 亚洲国产欧美在线成人 | 欧美日韩在线亚洲综合国产人 | 少妇性l交大片欧洲热妇乱xxx | 国产乡下妇女做爰 | 精品国产精品久久一区免费式 | 精品人妻中文字幕有码在线 | 国产成人精品视频ⅴa片软件竹菊 | 大肉大捧一进一出好爽视频 | 四虎永久在线精品免费网址 | 少妇愉情理伦片bd | 日韩精品成人一区二区三区 | 国产成人亚洲综合无码 | 亚洲乱码日产精品bd | 欧美精品一区二区精品久久 | 久久人人97超碰a片精品 | 色欲av亚洲一区无码少妇 | 欧美老妇交乱视频在线观看 | 亚洲精品一区二区三区大桥未久 | 亚洲精品国产精品乱码不卡 | 强伦人妻一区二区三区视频18 | 欧美丰满老熟妇xxxxx性 | 露脸叫床粗话东北少妇 | 亚洲成色在线综合网站 | 国产在线精品一区二区三区直播 | 日产精品99久久久久久 | 天海翼激烈高潮到腰振不止 | 97人妻精品一区二区三区 | 窝窝午夜理论片影院 | 曰本女人与公拘交酡免费视频 | 麻豆人妻少妇精品无码专区 | 成人亚洲精品久久久久 | 国产亚洲视频中文字幕97精品 | 日本精品人妻无码77777 天堂一区人妻无码 | 男人和女人高潮免费网站 | 久久人人爽人人人人片 | 亚洲一区二区观看播放 | 在线观看国产一区二区三区 | √天堂资源地址中文在线 | 永久免费精品精品永久-夜色 | 综合人妻久久一区二区精品 | 国产精品二区一区二区aⅴ污介绍 | 成人精品一区二区三区中文字幕 | 国产成人人人97超碰超爽8 | 任你躁国产自任一区二区三区 | 成人无码精品一区二区三区 | 未满小14洗澡无码视频网站 | 好屌草这里只有精品 | 国产va免费精品观看 | 亚洲精品午夜无码电影网 | 嫩b人妻精品一区二区三区 | 无码乱肉视频免费大全合集 | 免费观看又污又黄的网站 | 亚洲精品一区二区三区四区五区 | 国产亚洲日韩欧美另类第八页 | 免费人成网站视频在线观看 | a片免费视频在线观看 | 一本色道久久综合亚洲精品不卡 | 乱中年女人伦av三区 | 台湾无码一区二区 | 粉嫩少妇内射浓精videos | 国产真人无遮挡作爱免费视频 | 免费国产黄网站在线观看 | 午夜成人1000部免费视频 | 四虎影视成人永久免费观看视频 | 国产人成高清在线视频99最全资源 | 国产成人精品一区二区在线小狼 | aⅴ亚洲 日韩 色 图网站 播放 | 国产精品久久久一区二区三区 | 婷婷五月综合缴情在线视频 | 综合人妻久久一区二区精品 | 国产午夜亚洲精品不卡下载 | 2020久久香蕉国产线看观看 | 亚洲中文字幕在线观看 | 亚洲欧洲日本无在线码 | 永久免费观看国产裸体美女 | 国内综合精品午夜久久资源 | 色欲综合久久中文字幕网 | 国产无av码在线观看 | 人人爽人人澡人人高潮 | 丝袜美腿亚洲一区二区 | 九九久久精品国产免费看小说 | 99精品久久毛片a片 | www国产亚洲精品久久网站 | 亚洲精品久久久久avwww潮水 | 婷婷五月综合激情中文字幕 | 日本欧美一区二区三区乱码 | 成人性做爰aaa片免费看不忠 | 亚洲精品国偷拍自产在线观看蜜桃 | 无码av最新清无码专区吞精 | 无码人妻精品一区二区三区下载 | 国产精品久久久久无码av色戒 | 久久久久免费看成人影片 | 国产内射爽爽大片视频社区在线 | 亚洲国产成人a精品不卡在线 | 夜夜高潮次次欢爽av女 | 三上悠亚人妻中文字幕在线 | 亚洲の无码国产の无码步美 | 精品成人av一区二区三区 | 国产内射老熟女aaaa | 女高中生第一次破苞av | 福利一区二区三区视频在线观看 | 精品国产青草久久久久福利 | 国产精品高潮呻吟av久久4虎 | 4hu四虎永久在线观看 | 成人无码视频在线观看网站 | 娇妻被黑人粗大高潮白浆 | 国产av人人夜夜澡人人爽麻豆 | 综合激情五月综合激情五月激情1 | 中文字幕久久久久人妻 | 亚洲精品成人福利网站 | 国产婷婷色一区二区三区在线 | 性欧美疯狂xxxxbbbb | 色偷偷人人澡人人爽人人模 | 九月婷婷人人澡人人添人人爽 | 亚洲综合伊人久久大杳蕉 | 日韩精品a片一区二区三区妖精 | 男女爱爱好爽视频免费看 | 亚洲国产精品久久人人爱 | 久久久久99精品成人片 | 亚洲色大成网站www | 亚洲一区二区三区含羞草 | 国产精品亚洲а∨无码播放麻豆 | 99久久无码一区人妻 | 99久久久无码国产aaa精品 | 亚洲午夜无码久久 | 国内揄拍国内精品少妇国语 | 高中生自慰www网站 | 亚洲性无码av中文字幕 | 久久 国产 尿 小便 嘘嘘 | 狂野欧美性猛xxxx乱大交 | 国产在线无码精品电影网 | 55夜色66夜色国产精品视频 | 正在播放东北夫妻内射 | 少妇被粗大的猛进出69影院 | 天堂无码人妻精品一区二区三区 | 亚洲爆乳大丰满无码专区 | 国产成人av免费观看 | 国产精品久免费的黄网站 | 国产97人人超碰caoprom | 欧美精品一区二区精品久久 | 高中生自慰www网站 | 99精品国产综合久久久久五月天 | 玩弄少妇高潮ⅹxxxyw | 97无码免费人妻超级碰碰夜夜 | 2020久久超碰国产精品最新 | 高清不卡一区二区三区 | 蜜桃视频插满18在线观看 | 国产成人人人97超碰超爽8 | 亚洲日韩av一区二区三区四区 | 国产精品高潮呻吟av久久4虎 | 色五月丁香五月综合五月 | 国产人妖乱国产精品人妖 | 免费无码肉片在线观看 | 国内少妇偷人精品视频 | 日韩视频 中文字幕 视频一区 | 精品久久久久香蕉网 | 真人与拘做受免费视频 | 国产成人无码a区在线观看视频app | 一个人免费观看的www视频 | 熟妇女人妻丰满少妇中文字幕 | 福利一区二区三区视频在线观看 | 成人女人看片免费视频放人 | 特黄特色大片免费播放器图片 | 国产精品多人p群无码 | 久久综合给久久狠狠97色 | 少妇性l交大片 | 国产超级va在线观看视频 | 久久综合激激的五月天 | 极品尤物被啪到呻吟喷水 | 国产婷婷色一区二区三区在线 | 精品厕所偷拍各类美女tp嘘嘘 | 荫蒂添的好舒服视频囗交 | 精品熟女少妇av免费观看 | 99久久99久久免费精品蜜桃 | 风流少妇按摩来高潮 | 国产麻豆精品一区二区三区v视界 | 亚洲成av人在线观看网址 | 国产区女主播在线观看 | 中文字幕无码av激情不卡 | 女人色极品影院 | 乱人伦人妻中文字幕无码久久网 | 久久99精品久久久久久动态图 | 欧美阿v高清资源不卡在线播放 | 无遮无挡爽爽免费视频 | 中文久久乱码一区二区 | 亚洲国产精品美女久久久久 | 国产精品va在线播放 | 亚洲一区二区三区在线观看网站 | 国产又粗又硬又大爽黄老大爷视 | 少妇无码av无码专区在线观看 | 少妇无码一区二区二三区 | 日本成熟视频免费视频 | 国产内射爽爽大片视频社区在线 | 国内丰满熟女出轨videos | 精品国产一区二区三区四区在线看 | 熟妇人妻中文av无码 | 欧美人与禽猛交狂配 | 高清无码午夜福利视频 | 日日躁夜夜躁狠狠躁 | 国产亚洲精品久久久久久久久动漫 | 欧美人与善在线com | 亚洲综合久久一区二区 | 中文亚洲成a人片在线观看 | 国产av无码专区亚洲awww | 成人精品视频一区二区 | 好爽又高潮了毛片免费下载 | 天堂亚洲2017在线观看 | 十八禁真人啪啪免费网站 | 人人妻人人澡人人爽精品欧美 | 日本va欧美va欧美va精品 | 国产精品久久国产三级国 | 国产一区二区三区四区五区加勒比 | 人妻少妇精品视频专区 | 久久aⅴ免费观看 | 久久亚洲中文字幕精品一区 | 国产农村乱对白刺激视频 | 色 综合 欧美 亚洲 国产 | 日日碰狠狠丁香久燥 | 亚洲欧洲中文日韩av乱码 | 在线播放免费人成毛片乱码 | 国产性生交xxxxx无码 | 伊人色综合久久天天小片 | 国产无遮挡吃胸膜奶免费看 | 久久人人爽人人爽人人片av高清 | 中文久久乱码一区二区 | 成人精品视频一区二区三区尤物 | 亚洲理论电影在线观看 | 在教室伦流澡到高潮hnp视频 | 精品无码国产一区二区三区av | 2019午夜福利不卡片在线 | 久久人人爽人人爽人人片av高清 | 久久综合给久久狠狠97色 | 久久精品人人做人人综合 | 亚洲成在人网站无码天堂 | 无码人妻av免费一区二区三区 | 99久久精品午夜一区二区 | 久久精品国产日本波多野结衣 | 国产精品嫩草久久久久 | 国产另类ts人妖一区二区 | 欧美喷潮久久久xxxxx | 极品尤物被啪到呻吟喷水 | 午夜丰满少妇性开放视频 | 狠狠亚洲超碰狼人久久 | www国产亚洲精品久久网站 | 欧美丰满熟妇xxxx | 亚洲国精产品一二二线 | 性欧美熟妇videofreesex | 97夜夜澡人人爽人人喊中国片 | 99麻豆久久久国产精品免费 | www国产亚洲精品久久久日本 | 麻豆av传媒蜜桃天美传媒 | 奇米影视7777久久精品 | 亚洲娇小与黑人巨大交 | 亚洲 激情 小说 另类 欧美 | 性色欲网站人妻丰满中文久久不卡 | 2020最新国产自产精品 | 色五月丁香五月综合五月 | 久久久久久a亚洲欧洲av冫 | 色妞www精品免费视频 | 大乳丰满人妻中文字幕日本 | 成人动漫在线观看 | 欧美激情综合亚洲一二区 | a国产一区二区免费入口 | 两性色午夜免费视频 | 日本精品久久久久中文字幕 | 亚洲无人区一区二区三区 | 天堂一区人妻无码 | 99久久精品国产一区二区蜜芽 | 男女超爽视频免费播放 | 丰腴饱满的极品熟妇 | 午夜精品久久久久久久久 | 无码免费一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 亚洲成av人在线观看网址 | 久久久久国色av免费观看性色 | 亚洲小说春色综合另类 | 精品国产aⅴ无码一区二区 | 少妇性l交大片欧洲热妇乱xxx | 色一情一乱一伦一视频免费看 | 天堂а√在线地址中文在线 | 亚洲国产精品一区二区第一页 | 又黄又爽又色的视频 | 精品亚洲韩国一区二区三区 | 欧美xxxx黑人又粗又长 | 久久97精品久久久久久久不卡 | 青青久在线视频免费观看 | 亚洲欧洲日本无在线码 | 成人性做爰aaa片免费看 | 狠狠色欧美亚洲狠狠色www | 7777奇米四色成人眼影 | 夫妻免费无码v看片 | 亚洲中文字幕无码中文字在线 | 少妇被粗大的猛进出69影院 | а天堂中文在线官网 | 97资源共享在线视频 | 内射白嫩少妇超碰 | 国产精品无套呻吟在线 | 粗大的内捧猛烈进出视频 | aⅴ亚洲 日韩 色 图网站 播放 | 伊人久久婷婷五月综合97色 | 国产精品99爱免费视频 | 激情内射日本一区二区三区 | 荫蒂添的好舒服视频囗交 | 成熟女人特级毛片www免费 | 大屁股大乳丰满人妻 | 亚洲 欧美 激情 小说 另类 | 秋霞成人午夜鲁丝一区二区三区 | 欧美日韩亚洲国产精品 | 欧美日韩亚洲国产精品 | 国产激情艳情在线看视频 | 老头边吃奶边弄进去呻吟 | 欧美精品免费观看二区 | 精品人人妻人人澡人人爽人人 | 精品国产成人一区二区三区 | 国产午夜无码视频在线观看 | 国产亚洲人成a在线v网站 | 亚洲阿v天堂在线 | 天天爽夜夜爽夜夜爽 | 中文久久乱码一区二区 | 亚洲色欲色欲欲www在线 | 大肉大捧一进一出好爽视频 | 少妇人妻av毛片在线看 | 国产成人无码av在线影院 | 欧美刺激性大交 | 亚洲中文字幕无码中文字在线 | 一本大道久久东京热无码av | 亚洲男女内射在线播放 | 国产网红无码精品视频 | 国产精品无码mv在线观看 | 国产成人av免费观看 | 国产97在线 | 亚洲 | 少妇高潮一区二区三区99 | 国产成人精品视频ⅴa片软件竹菊 | 曰韩少妇内射免费播放 | 亚洲精品国产品国语在线观看 | 久久成人a毛片免费观看网站 | 成人一区二区免费视频 | 成人免费无码大片a毛片 | 少妇性俱乐部纵欲狂欢电影 | 成人aaa片一区国产精品 | 国产xxx69麻豆国语对白 | 小鲜肉自慰网站xnxx | 荫蒂被男人添的好舒服爽免费视频 | 亚洲日韩一区二区 | 国产精品二区一区二区aⅴ污介绍 | 天下第一社区视频www日本 | 久久午夜夜伦鲁鲁片无码免费 | 伊人久久婷婷五月综合97色 | 东京热一精品无码av | 伊人久久大香线蕉av一区二区 | 福利一区二区三区视频在线观看 | 国产精品无码成人午夜电影 | 性色av无码免费一区二区三区 | 亚洲欧美综合区丁香五月小说 | 日产精品高潮呻吟av久久 | 国产精品国产三级国产专播 | 日韩成人一区二区三区在线观看 | 麻豆蜜桃av蜜臀av色欲av | 国产真实乱对白精彩久久 | 国产亚洲精品久久久久久大师 | 国产在线精品一区二区三区直播 | 中文字幕人妻无码一区二区三区 | 四十如虎的丰满熟妇啪啪 | aⅴ亚洲 日韩 色 图网站 播放 | 国产午夜无码视频在线观看 | 日本精品高清一区二区 | 天堂а√在线地址中文在线 | 少妇无套内谢久久久久 | 国产亚洲欧美在线专区 | 极品尤物被啪到呻吟喷水 | 国产精品香蕉在线观看 | 美女极度色诱视频国产 | 99久久精品国产一区二区蜜芽 | 色爱情人网站 | 国产精品美女久久久久av爽李琼 | 国产电影无码午夜在线播放 | 永久免费观看国产裸体美女 | 在线视频网站www色 | 国产免费无码一区二区视频 | 少妇性荡欲午夜性开放视频剧场 | 久久综合网欧美色妞网 | 日韩av无码一区二区三区 | 久久国产自偷自偷免费一区调 | 玩弄少妇高潮ⅹxxxyw | 欧美日本精品一区二区三区 | 国产成人一区二区三区别 | 欧美日本精品一区二区三区 | 欧美性猛交xxxx富婆 | 久久久精品欧美一区二区免费 | 久久久久久亚洲精品a片成人 | 人人妻人人澡人人爽欧美一区九九 | 国产精品igao视频网 | 国产精品福利视频导航 | 日本丰满护士爆乳xxxx | 国产一区二区三区四区五区加勒比 | 国产乱人伦av在线无码 | 精品国产成人一区二区三区 | 国产av无码专区亚洲a∨毛片 | 国产精品久久久久久亚洲影视内衣 | 免费网站看v片在线18禁无码 | 天堂一区人妻无码 | 亚洲国产av美女网站 | 久久精品人人做人人综合 | 在线观看国产午夜福利片 | 国内精品久久毛片一区二区 | 国产人妻久久精品二区三区老狼 | 欧美老妇交乱视频在线观看 | 久久久久成人精品免费播放动漫 | 国产激情无码一区二区app | 久久综合网欧美色妞网 | 爆乳一区二区三区无码 | 搡女人真爽免费视频大全 | 欧美成人高清在线播放 | 免费观看又污又黄的网站 | 免费看少妇作爱视频 | 国产性生交xxxxx无码 | 亚洲国产一区二区三区在线观看 | 日本丰满护士爆乳xxxx | 波多野结衣 黑人 | 精品久久综合1区2区3区激情 | 精品国偷自产在线视频 | 荫蒂被男人添的好舒服爽免费视频 | 无码人妻丰满熟妇区五十路百度 | 亚洲人成影院在线无码按摩店 | 精品国产成人一区二区三区 | 日韩成人一区二区三区在线观看 | 国产精品无码成人午夜电影 | 伊在人天堂亚洲香蕉精品区 | 中文字幕日产无线码一区 | 爆乳一区二区三区无码 | 青春草在线视频免费观看 | 丰满人妻精品国产99aⅴ | 在线а√天堂中文官网 | 久久伊人色av天堂九九小黄鸭 | 国产精品第一区揄拍无码 | 国内精品久久毛片一区二区 | 色综合久久久无码中文字幕 | 午夜精品一区二区三区的区别 | 国产在线一区二区三区四区五区 | 精品国产麻豆免费人成网站 | 中文精品无码中文字幕无码专区 | 免费乱码人妻系列无码专区 | 精品久久久无码中文字幕 | 中文字幕av无码一区二区三区电影 | 精品欧美一区二区三区久久久 | 国产精品igao视频网 | 偷窥日本少妇撒尿chinese | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲爆乳无码专区 | 疯狂三人交性欧美 | 亚洲国产精品美女久久久久 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 中国女人内谢69xxxx | 成 人 免费观看网站 | 欧美激情内射喷水高潮 | 国产又爽又猛又粗的视频a片 | 2019午夜福利不卡片在线 | a在线观看免费网站大全 | 熟妇女人妻丰满少妇中文字幕 | 少妇性俱乐部纵欲狂欢电影 | 国产精品久久久一区二区三区 | 女人和拘做爰正片视频 | 亚洲爆乳无码专区 | 久久久久久av无码免费看大片 | 亚洲欧洲日本无在线码 | 久久99精品国产麻豆 | 色婷婷综合激情综在线播放 | 午夜福利一区二区三区在线观看 | 精品无码av一区二区三区 | 欧美人妻一区二区三区 | 巨爆乳无码视频在线观看 | 丰满岳乱妇在线观看中字无码 | 亚洲中文字幕乱码av波多ji | 国产真实乱对白精彩久久 | 俺去俺来也www色官网 | 国色天香社区在线视频 | 久久久久成人精品免费播放动漫 | 欧美性猛交xxxx富婆 | 亚洲春色在线视频 | 少妇无码吹潮 | 天堂在线观看www | 狠狠亚洲超碰狼人久久 | 强奷人妻日本中文字幕 | 国产精品美女久久久久av爽李琼 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 久久国产精品精品国产色婷婷 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日韩无套无码精品 | 狠狠色欧美亚洲狠狠色www | 国产成人无码a区在线观看视频app | 国内精品人妻无码久久久影院 | 日韩在线不卡免费视频一区 | 国产精品成人av在线观看 | 国产亚洲美女精品久久久2020 | 久久综合九色综合欧美狠狠 | 国产一区二区三区日韩精品 | 乱人伦人妻中文字幕无码 | 偷窥日本少妇撒尿chinese | 国产成人无码av片在线观看不卡 | 国产精品va在线观看无码 | 久久精品国产一区二区三区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 午夜熟女插插xx免费视频 | 久久精品国产大片免费观看 | 九九久久精品国产免费看小说 | 成熟人妻av无码专区 | 国产精品福利视频导航 | 亚洲日本在线电影 | 麻豆人妻少妇精品无码专区 | 四十如虎的丰满熟妇啪啪 | 国产做国产爱免费视频 | 妺妺窝人体色www在线小说 | 亚洲成a人片在线观看日本 | 午夜精品久久久久久久 | 欧洲精品码一区二区三区免费看 | 欧美喷潮久久久xxxxx | 国产又粗又硬又大爽黄老大爷视 | 国产欧美熟妇另类久久久 | 大肉大捧一进一出视频出来呀 | 理论片87福利理论电影 | 大色综合色综合网站 | 99久久婷婷国产综合精品青草免费 | 日本免费一区二区三区最新 | 久久综合色之久久综合 | 亚洲成av人片在线观看无码不卡 | 久久综合九色综合欧美狠狠 | 爆乳一区二区三区无码 | 午夜熟女插插xx免费视频 | 精品久久久无码中文字幕 | 成人欧美一区二区三区 | 国产熟女一区二区三区四区五区 | 熟妇人妻中文av无码 | 日本免费一区二区三区最新 | 99久久亚洲精品无码毛片 | 中文字幕人妻无码一夲道 | 扒开双腿疯狂进出爽爽爽视频 | 天堂久久天堂av色综合 | 日本乱人伦片中文三区 | 2020久久超碰国产精品最新 | 人人妻人人澡人人爽欧美一区 | 亚洲色www成人永久网址 | 亚洲无人区午夜福利码高清完整版 | 在线 国产 欧美 亚洲 天堂 | 国产精品高潮呻吟av久久4虎 | 亚洲乱码国产乱码精品精 | 午夜丰满少妇性开放视频 | 亚洲精品无码人妻无码 | 久久婷婷五月综合色国产香蕉 | 亚洲精品无码人妻无码 | 午夜精品一区二区三区的区别 | 性开放的女人aaa片 | 精品成人av一区二区三区 | 99久久亚洲精品无码毛片 | 中国女人内谢69xxxx | 久久久精品人妻久久影视 | 国产热a欧美热a在线视频 | 午夜丰满少妇性开放视频 | 国产精品第一区揄拍无码 | 色狠狠av一区二区三区 | 成人精品视频一区二区 | 人人妻人人澡人人爽欧美一区 | 久久久久亚洲精品中文字幕 | 久久www免费人成人片 | 2020久久香蕉国产线看观看 | 亚洲日本一区二区三区在线 | 一本久道高清无码视频 | 国产手机在线αⅴ片无码观看 | 欧美人妻一区二区三区 | 噜噜噜亚洲色成人网站 | 亚洲中文字幕成人无码 | 亚洲日韩av片在线观看 | 日韩精品一区二区av在线 | 中文字幕中文有码在线 | 国内精品人妻无码久久久影院 | 国产97色在线 | 免 | 97无码免费人妻超级碰碰夜夜 | 亚洲欧美日韩国产精品一区二区 | 女人色极品影院 | 国产乱码精品一品二品 | 无码人妻丰满熟妇区五十路百度 | 亚洲精品中文字幕 | 一区二区三区乱码在线 | 欧洲 | 97人妻精品一区二区三区 | 欧美国产亚洲日韩在线二区 | 亚洲呦女专区 | 性啪啪chinese东北女人 | 日日噜噜噜噜夜夜爽亚洲精品 | 精品国产一区二区三区四区 | 男女性色大片免费网站 | 思思久久99热只有频精品66 | 亚洲欧美综合区丁香五月小说 | 无码国产色欲xxxxx视频 | 成熟妇人a片免费看网站 | 无码一区二区三区在线观看 | 丁香花在线影院观看在线播放 | 黑森林福利视频导航 | 久久99精品久久久久久 | 奇米影视888欧美在线观看 | 性欧美牲交xxxxx视频 | 丰满少妇人妻久久久久久 | 亚洲一区二区三区 | 国产精品无码一区二区桃花视频 | 麻豆果冻传媒2021精品传媒一区下载 | 国产内射爽爽大片视频社区在线 | 国产无遮挡又黄又爽又色 | 国产亚洲日韩欧美另类第八页 | 一个人看的www免费视频在线观看 | √天堂资源地址中文在线 | 亚洲一区二区三区四区 | 久久婷婷五月综合色国产香蕉 | 亚洲中文字幕成人无码 | 国产办公室秘书无码精品99 | 久久国产劲爆∧v内射 | 国产亲子乱弄免费视频 | 亚洲 激情 小说 另类 欧美 | 国内精品人妻无码久久久影院蜜桃 | 少妇无码一区二区二三区 | 骚片av蜜桃精品一区 | 青青青爽视频在线观看 | 亚洲中文字幕乱码av波多ji | 国产一区二区三区四区五区加勒比 | 婷婷综合久久中文字幕蜜桃三电影 | 精品亚洲成av人在线观看 | 无套内射视频囯产 | 欧美激情一区二区三区成人 | 老熟妇乱子伦牲交视频 | 国色天香社区在线视频 | 精品国产麻豆免费人成网站 | 亚洲日韩精品欧美一区二区 | 免费中文字幕日韩欧美 | 97久久国产亚洲精品超碰热 | 精品熟女少妇av免费观看 | 性生交片免费无码看人 | 国产极品视觉盛宴 | 亚洲国产精品一区二区第一页 | 亚洲精品国产品国语在线观看 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久综合久久自在自线精品自 | 97夜夜澡人人爽人人喊中国片 | 国产99久久精品一区二区 | 水蜜桃av无码 | a片免费视频在线观看 | 亚洲人成人无码网www国产 | 欧美国产日产一区二区 | 女人高潮内射99精品 | 丁香啪啪综合成人亚洲 | 亚洲国产综合无码一区 | а√天堂www在线天堂小说 | 18精品久久久无码午夜福利 | 国产精品亚洲五月天高清 | 成人免费视频一区二区 | 国产又爽又猛又粗的视频a片 | 亚洲gv猛男gv无码男同 | 玩弄中年熟妇正在播放 | 亚洲日本在线电影 | 国产一区二区三区影院 | 久精品国产欧美亚洲色aⅴ大片 | 日日摸日日碰夜夜爽av | 天天躁夜夜躁狠狠是什么心态 | 久久精品国产一区二区三区肥胖 | 国产精品久久久午夜夜伦鲁鲁 | 久久天天躁夜夜躁狠狠 | 全黄性性激高免费视频 | 少女韩国电视剧在线观看完整 | 鲁一鲁av2019在线 | 成人无码视频在线观看网站 | 欧美日韩视频无码一区二区三 | 一本色道婷婷久久欧美 | 国产在线aaa片一区二区99 | 久久亚洲国产成人精品性色 | www国产精品内射老师 | 性生交大片免费看l | 无码av中文字幕免费放 | 蜜臀av在线播放 久久综合激激的五月天 | 中文字幕 人妻熟女 | 亲嘴扒胸摸屁股激烈网站 | 亚洲日韩av片在线观看 | 国内少妇偷人精品视频免费 | 色婷婷综合激情综在线播放 | 日日摸日日碰夜夜爽av | 亚洲色www成人永久网址 | 亚洲精品午夜无码电影网 | 99久久精品日本一区二区免费 | 日韩精品无码一区二区中文字幕 | 国产亚洲tv在线观看 | 色综合久久88色综合天天 | 亚洲国产日韩a在线播放 | 久久无码专区国产精品s | 永久免费精品精品永久-夜色 | 免费人成在线视频无码 | 亚洲精品欧美二区三区中文字幕 | 日本丰满护士爆乳xxxx | 精品厕所偷拍各类美女tp嘘嘘 | 成人无码视频免费播放 | 国产成人精品三级麻豆 | 性色欲情网站iwww九文堂 | 精品无码国产自产拍在线观看蜜 | 一本久久a久久精品vr综合 | 97精品国产97久久久久久免费 | 国产亚洲精品久久久闺蜜 | 无码人妻精品一区二区三区下载 | 国产真人无遮挡作爱免费视频 | 理论片87福利理论电影 | 久久久国产一区二区三区 | 成 人影片 免费观看 | 成人无码精品1区2区3区免费看 | 在线看片无码永久免费视频 | 无码av免费一区二区三区试看 | 国产97色在线 | 免 | 人人澡人人透人人爽 | 香蕉久久久久久av成人 | 日韩精品无码一本二本三本色 | 免费观看激色视频网站 | 成人免费视频一区二区 | 国产精品久久久久9999小说 | 国内揄拍国内精品人妻 | 少妇人妻偷人精品无码视频 | 欧美熟妇另类久久久久久多毛 | 日韩欧美成人免费观看 | 2020久久超碰国产精品最新 | 国内少妇偷人精品视频免费 | 人妻互换免费中文字幕 | 无码人妻精品一区二区三区下载 | 蜜臀av无码人妻精品 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久午夜夜伦鲁鲁片无码免费 | 伊人久久大香线蕉午夜 | 国产精品99久久精品爆乳 | 九月婷婷人人澡人人添人人爽 | 俺去俺来也www色官网 | 六十路熟妇乱子伦 | 国产三级久久久精品麻豆三级 | 精品一区二区三区无码免费视频 | 丰满肥臀大屁股熟妇激情视频 | 乱人伦中文视频在线观看 | 在线天堂新版最新版在线8 | 欧美35页视频在线观看 | 中文字幕人成乱码熟女app | 在线亚洲高清揄拍自拍一品区 | 欧美精品一区二区精品久久 | 国色天香社区在线视频 | 日韩人妻无码一区二区三区久久99 | 中文字幕中文有码在线 | 色婷婷香蕉在线一区二区 | 5858s亚洲色大成网站www | 亚洲日韩av一区二区三区中文 | 精品国产成人一区二区三区 | 精品无人区无码乱码毛片国产 | 久久久久久九九精品久 | 男女猛烈xx00免费视频试看 | 国产成人人人97超碰超爽8 | 小泽玛莉亚一区二区视频在线 | 亚洲狠狠色丁香婷婷综合 | 精品久久久久久亚洲精品 | 久久久久成人片免费观看蜜芽 | 亚洲国产av精品一区二区蜜芽 | 2019nv天堂香蕉在线观看 | 中文字幕无线码 | 性欧美牲交在线视频 | 无套内谢老熟女 | 国产色在线 | 国产 | 国产亚洲人成在线播放 | 女人和拘做爰正片视频 | 99精品国产综合久久久久五月天 | 色综合久久久无码网中文 | 久久97精品久久久久久久不卡 | 国产sm调教视频在线观看 | 亚洲精品一区二区三区大桥未久 | √天堂资源地址中文在线 | 国产无遮挡又黄又爽又色 | 亚洲欧美日韩国产精品一区二区 | 红桃av一区二区三区在线无码av | 久久久久国色av免费观看性色 | 小sao货水好多真紧h无码视频 | 国产精品免费大片 | 日日碰狠狠躁久久躁蜜桃 | 久久精品中文字幕一区 | 久久伊人色av天堂九九小黄鸭 | 中文字幕无码av波多野吉衣 | 色综合视频一区二区三区 | 日韩亚洲欧美精品综合 | 青草青草久热国产精品 | 日韩精品无码免费一区二区三区 | 夜精品a片一区二区三区无码白浆 | 自拍偷自拍亚洲精品被多人伦好爽 | 精品人妻中文字幕有码在线 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 1000部啪啪未满十八勿入下载 | 久久综合香蕉国产蜜臀av | 伦伦影院午夜理论片 | 少妇一晚三次一区二区三区 | 麻豆精品国产精华精华液好用吗 | 中文字幕精品av一区二区五区 | 一二三四社区在线中文视频 | 激情内射亚州一区二区三区爱妻 | 在线а√天堂中文官网 | 中文无码成人免费视频在线观看 | 男女下面进入的视频免费午夜 | 99精品视频在线观看免费 | 自拍偷自拍亚洲精品被多人伦好爽 | 精品国产一区二区三区av 性色 | 久久午夜无码鲁丝片午夜精品 | a在线亚洲男人的天堂 | 成年女人永久免费看片 | 久久精品国产日本波多野结衣 | 日本爽爽爽爽爽爽在线观看免 | 国产精品亚洲一区二区三区喷水 | 日本护士xxxxhd少妇 | 天堂久久天堂av色综合 | 国产在线精品一区二区三区直播 | 国产成人精品视频ⅴa片软件竹菊 | 东京热无码av男人的天堂 | 国产精品人人爽人人做我的可爱 | 日本大香伊一区二区三区 | 国产成人无码a区在线观看视频app | 午夜成人1000部免费视频 | 无码播放一区二区三区 | 国产手机在线αⅴ片无码观看 | 欧美黑人乱大交 | 1000部啪啪未满十八勿入下载 | 精品成人av一区二区三区 | 女人和拘做爰正片视频 | 国精产品一区二区三区 | 国产精品人人爽人人做我的可爱 | 免费看男女做好爽好硬视频 | 天堂а√在线地址中文在线 |