久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Java用PDFBox實(shí)現(xiàn)圖片合并PDF:內(nèi)存優(yōu)化與壓縮實(shí)踐

Java用PDFBox實(shí)現(xiàn)圖片合并PDF:內(nèi)存優(yōu)化與壓縮實(shí)踐 1. 項(xiàng)目整體思路拆解需求到底是什么先說(shuō)一個(gè)容易被低估的事實(shí)把多張圖片合并成PDF看起來(lái)只是調(diào)個(gè)接口、寫(xiě)個(gè)循環(huán)的事但實(shí)際落地時(shí)你會(huì)發(fā)現(xiàn)真正的問(wèn)題全藏在細(xì)節(jié)里——圖片尺寸不一、內(nèi)存占用、PDF文件體積失控、圖片方向錯(cuò)亂、透明通道變黑底……哪一個(gè)都能讓你本來(lái)半小時(shí)能跑完的活兒變成一整天的返工。這個(gè)項(xiàng)目的核心需求可以拆成三層第一層最基本的輸入輸出。給定一組圖片可能是JPG、PNG也可能混合按指定順序合并成一個(gè)PDF文件每一張圖片占用PDF的一頁(yè)。這是所有方案的共同底線。第二層工程化約束。圖片數(shù)量可能是幾張也可能是幾千張圖片來(lái)源可能是本地文件、Base64字符串、遠(yuǎn)程URL輸出的PDF需要控制體積不能一張高分辨率照片直接變成幾十MB的怪獸文件內(nèi)存占用要可控不能在處理百?gòu)堃陨系膱D片時(shí)直接把堆內(nèi)存吃滿。第三層體驗(yàn)與擴(kuò)展。最終使用者可能希望每頁(yè)圖片自適應(yīng)鋪滿頁(yè)面、希望在圖片之間插入空白頁(yè)或自定義頁(yè)眉頁(yè)腳、希望圖片按指定尺寸擺放比如證件掃描件要保證物理尺寸一致。這些需求會(huì)直接影響技術(shù)選型。從技術(shù)方案上看Java生態(tài)里能實(shí)現(xiàn)圖片轉(zhuǎn)PDF的主流路徑有三個(gè)iText系列iText 5、iText 7、Apache PDFBox、以及OpenPDF。我在實(shí)際項(xiàng)目里三個(gè)都試過(guò)簡(jiǎn)單說(shuō)下取舍邏輯。iText功能最強(qiáng)對(duì)圖片壓縮、頁(yè)面布局、字體嵌入的控制粒度最細(xì)但iText的AGPL授權(quán)對(duì)很多公司來(lái)說(shuō)是個(gè)繞不開(kāi)的坎——除非你愿意把項(xiàng)目開(kāi)源或者購(gòu)買(mǎi)商業(yè)授權(quán)。OpenPDF是iText 4的社區(qū)分支授權(quán)相對(duì)寬松但功能停留在比較老的形態(tài)遇到特殊需求時(shí)文檔少、擴(kuò)展也麻煩。PDFBox是Apache基金會(huì)的項(xiàng)目Apache 2.0許可完全不用操心授權(quán)問(wèn)題對(duì)圖片PDF這種基礎(chǔ)需求支持得很穩(wěn)唯一的缺點(diǎn)是API沒(méi)有iText那么高冷好用但勝在邏輯清晰、調(diào)試容易。這個(gè)項(xiàng)目我用的是PDFBox理由很簡(jiǎn)單圖片轉(zhuǎn)PDF本身就是PDFBox的看家功能之一它把創(chuàng)建文檔—添加圖片頁(yè)—寫(xiě)入文件的過(guò)程封裝得足夠干凈同時(shí)沒(méi)有授權(quán)風(fēng)險(xiǎn)。如果你的項(xiàng)目只是把圖片合并成PDF沒(méi)有太多花哨的排版需求PDFBox是性價(jià)比最高的選擇。也許你會(huì)問(wèn)為什么不用更簡(jiǎn)單的方案比如直接用命令行工具如果你在服務(wù)器上手動(dòng)執(zhí)行一次用工具確實(shí)快但如果這個(gè)能力要被集成到Web應(yīng)用里、被不同的用戶以不同的參數(shù)反復(fù)調(diào)用就必須有一個(gè)程序化的實(shí)現(xiàn)。這才是這個(gè)項(xiàng)目的題中之義——把能力沉淀成代碼而不是依賴人工操作。2. 核心細(xì)節(jié)解析從圖片讀取到PDF生成的每一步2.1 圖片讀取策略按需加載別一口氣全塞進(jìn)內(nèi)存最容易踩的坑就是寫(xiě)代碼的時(shí)候圖省事先把所有圖片全部讀進(jìn)BufferedImage列表再遍歷生成PDF。圖片少比如十張以內(nèi)一點(diǎn)問(wèn)題沒(méi)有但一旦超過(guò)三五十張每張又是三四MB的手機(jī)照片原圖內(nèi)存直接就爆了。我見(jiàn)過(guò)一個(gè)真實(shí)案例某開(kāi)發(fā)者在Windows本地測(cè)得好好的一上Linux服務(wù)器處理兩百?gòu)垐D片就OOM就是吃了這個(gè)虧。正確策略是邊讀邊寫(xiě)一次只處理一張圖片寫(xiě)完一頁(yè)就釋放引用。try (PDDocument document new PDDocument()) { for (File imageFile : imageFiles) { BufferedImage image ImageIO.read(imageFile); PDPage page new PDPage(PDRectangle.A4); document.addPage(page); PDImageXObject pdImage LosslessFactory.createFromImage(document, image); try (PDPageContentStream contentStream new PDPageContentStream(document, page)) { contentStream.drawImage(pdImage, 0, 0, pageWidth, pageHeight); } // 關(guān)鍵主動(dòng)釋放當(dāng)前圖片引用讓GC盡快回收 image.flush(); } document.save(outputPath); }image.flush()這一行很多人會(huì)忽略。BufferedImage的像素?cái)?shù)據(jù)存在Java堆外或者說(shuō)由ImageIO內(nèi)部管理flush之后可以釋放內(nèi)部緩沖區(qū)雖然不保證立刻回收但至少給了GC明確信號(hào)。處理大批量文件時(shí)這行代碼能讓內(nèi)存曲線平穩(wěn)不少。2.2 頁(yè)面尺寸與圖片適配圖片鋪滿頁(yè)面但不裁切每張圖片都要單獨(dú)建一個(gè)PDPage。這里有個(gè)設(shè)計(jì)決策頁(yè)面尺寸怎么定兩種常見(jiàn)策略。第一種固定頁(yè)面大小A4、Letter等圖片等比縮放后居中繪制頁(yè)面統(tǒng)一、適合打印場(chǎng)景。第二種每頁(yè)的尺寸跟隨圖片自身的寬高比生成畫(huà)冊(cè)式PDF文件打開(kāi)時(shí)每頁(yè)大小不一。實(shí)際項(xiàng)目中絕大多數(shù)需求都是第一種——尤其是要做成電子檔案或打印輸出時(shí)統(tǒng)一的頁(yè)面尺寸更符合預(yù)期。但直接在drawImage時(shí)把圖片拉伸到整個(gè)頁(yè)面會(huì)改變圖片比例人臉會(huì)變形表格線會(huì)歪。正確做法是按比例縮放計(jì)算出圖片在頁(yè)面內(nèi)的實(shí)際繪制區(qū)域。假設(shè)頁(yè)面尺寸為寬pageW、高pageH圖片原始尺寸為寬imgW、高imgH縮放比例取Math.min(pageW / imgW, pageH / imgH)這樣圖片在保持比例的前提下至少在一個(gè)維度上鋪滿頁(yè)面然后居中繪制。float scale Math.min(pageW / imgW, pageH / imgH); float drawW imgW * scale; float drawH imgH * scale; float x (pageW - drawW) / 2; float y (pageH - drawH) / 2; contentStream.drawImage(pdImage, x, y, drawW, drawH);再補(bǔ)一個(gè)更貼合真實(shí)需求的設(shè)計(jì)如果希望圖片在頁(yè)面上留一點(diǎn)邊距可以把pageW和pageH先扣除兩側(cè)邊距再參與計(jì)算。比如左右各留20磅那么實(shí)際可用寬度就是pageW - 40。這種細(xì)節(jié)在實(shí)際產(chǎn)出中很能體現(xiàn)差異。2.3 圖片格式與色彩模式透明底、CMYK這些坑怎么填I(lǐng)mageIO在讀取JPEG和PNG上基本沒(méi)問(wèn)題但有兩個(gè)高頻問(wèn)題需要特別注意。第一PNG透明背景。PDFBox在LosslessFactory.createFromImage轉(zhuǎn)換帶Alpha通道的BufferedImage時(shí)透明部分有可能變成黑色。這是因?yàn)镻DF本身支持透明但繪制方式和渲染器的兼容性參差不齊。穩(wěn)妥的做法是先把帶透明的圖片繪制到一張白色底的RGB畫(huà)布上再做轉(zhuǎn)換。BufferedImage rgb new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g rgb.createGraphics(); g.setColor(Color.WHITE); g.fillRect(0, 0, src.getWidth(), src.getHeight()); g.drawImage(src, 0, 0, null); g.dispose();第二某些JPEG是CMYK色彩模式。ImageIO在部分JDK版本下讀取這種圖片會(huì)直接拋異常甚至導(dǎo)致整個(gè)進(jìn)程異常退出。如果業(yè)務(wù)中無(wú)法避免上傳這種圖片一個(gè)可靠的兜底方案是用工具庫(kù)做色彩空間轉(zhuǎn)換。建議在讀取圖片時(shí)使用ImageReader并設(shè)置ImageReadParam或者干脆對(duì)異常圖片做二次處理先通過(guò)Toolkit.createImage或者第三方庫(kù)解析成RGB再繼續(xù)。2.4 圖片方向問(wèn)題為什么手機(jī)拍出來(lái)的照片是歪的這是我在實(shí)際項(xiàng)目中踩過(guò)最深的一個(gè)坑。手機(jī)拍攝的照片尤其是iPhone和一些Android機(jī)型JPEG文件里會(huì)寫(xiě)入EXIF信息其中Orientation字段標(biāo)識(shí)了拍攝時(shí)的設(shè)備方向。但I(xiàn)mageIO.read()返回的BufferedImage已經(jīng)丟掉了EXIF信息直接把這張圖寫(xiě)進(jìn)PDF出來(lái)的效果就是豎著拍的圖在PDF里橫躺著。解決思路有兩種。簡(jiǎn)單粗暴的讀取EXIF中的Orientation值如果是旋轉(zhuǎn)過(guò)的比如6表示順時(shí)針旋轉(zhuǎn)90度就先用AffineTransform把圖片旋轉(zhuǎn)回正確方向再交給PDFBox。// 用 ImageIO 的 ImageReader 提取 EXIF ImageReader reader ImageIO.getImageReadersByFormatName(jpeg).next(); reader.setInput(ImageIO.createImageInputStream(imageFile)); IIOMetadata metadata reader.getImageMetadata(0); // 從 metadata 中解析 Orientation 字段標(biāo)準(zhǔn) Exif TIFF tag 0x0112 // 6: 旋轉(zhuǎn)90度3: 旋轉(zhuǎn)180度8: 旋轉(zhuǎn)270度圖片方向處理邏輯不復(fù)雜但它屬于那種不遇到就永遠(yuǎn)不知道存在的問(wèn)題。如果你的項(xiàng)目涉及手機(jī)圖片上傳這步必須提前設(shè)計(jì)好。3. 實(shí)操過(guò)程完整代碼實(shí)現(xiàn)與參數(shù)選擇3.1 工程結(jié)構(gòu)與依賴配置以Maven項(xiàng)目為例只需要一個(gè)核心依賴dependency groupIdorg.apache.pdfbox/groupId artifactIdpdfbox/artifactId version2.0.27/version /dependency2.0.27是目前基于2.x系列的穩(wěn)定版本。PDFBox 3.x也發(fā)布了但包結(jié)構(gòu)和部分API有變動(dòng)如果你是從老項(xiàng)目升級(jí)建議先在測(cè)試環(huán)境驗(yàn)證兼容性再切換。另外PDFBox在處理圖片壓縮時(shí)會(huì)依賴commons-logging一般情況下Maven會(huì)幫我?guī)湍銕氩恍枰獑为?dú)配置。3.2 完整實(shí)現(xiàn)支持本地圖片目錄轉(zhuǎn)PDF我把核心代碼完整貼出來(lái)這個(gè)版本支持目錄下所有圖片按文件名順序合并、自適應(yīng)頁(yè)面等比縮放、透明通道處理、以及基礎(chǔ)的內(nèi)存優(yōu)化。import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Comparator; public class ImageToPdfConverter { public static void convert(File imageDir, File outputPdf, float margin) throws IOException { File[] images imageDir.listFiles((dir, name) - { String lower name.toLowerCase(); return lower.endsWith(.jpg) || lower.endsWith(.jpeg) || lower.endsWith(.png); }); if (images null || images.length 0) { throw new IllegalArgumentException(目錄下沒(méi)有找到圖片文件: imageDir.getAbsolutePath()); } // 按文件名排序保證合并順序穩(wěn)定 Arrays.sort(images, Comparator.comparing(File::getName)); try (PDDocument document new PDDocument()) { for (File imageFile : images) { BufferedImage image ImageIO.read(imageFile); if (image null) { System.err.println(跳過(guò)無(wú)法讀取的圖片: imageFile.getName()); continue; } // 透明PNG轉(zhuǎn)白底R(shí)GB避免黑底問(wèn)題 if (image.getColorModel().hasAlpha()) { BufferedImage rgb new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g rgb.createGraphics(); g.setColor(Color.WHITE); g.fillRect(0, 0, image.getWidth(), image.getHeight()); g.drawImage(image, 0, 0, null); g.dispose(); image.flush(); image rgb; } // 頁(yè)面大小默認(rèn)A4減去邊距 float pageW PDRectangle.A4.getWidth() - 2 * margin; float pageH PDRectangle.A4.getHeight() - 2 * margin; float imgW image.getWidth(); float imgH image.getHeight(); float scale Math.min(pageW / imgW, pageH / imgH); float drawW imgW * scale; float drawH imgH * scale; float x (PDRectangle.A4.getWidth() - drawW) / 2; float y (PDRectangle.A4.getHeight() - drawH) / 2; PDPage page new PDPage(PDRectangle.A4); document.addPage(page); PDImageXObject pdImage LosslessFactory.createFromImage(document, image); try (PDPageContentStream cs new PDPageContentStream(document, page)) { cs.drawImage(pdImage, x, y, drawW, drawH); } image.flush(); } document.save(outputPdf); } System.out.println(PDF生成成功: outputPdf.getAbsolutePath()); } public static void main(String[] args) throws IOException { File imageDir new File(args.length 0 ? args[0] : ./images); File outputPdf new File(args.length 1 ? args[1] : ./output.pdf); convert(imageDir, outputPdf, 20f); } }幾個(gè)參數(shù)解釋PDRectangle.A4是PDFBox內(nèi)置的A4尺寸常量寬595磅、高842磅。1磅等于1/72英寸A4紙的物理尺寸是210mm x 297mm換算過(guò)來(lái)正是這個(gè)數(shù)值。margin控制頁(yè)邊距我這里默認(rèn)20磅約7mm實(shí)際打印場(chǎng)景建議不小于10磅。排序用了Comparator.comparing(File::getName)字符串排序。如果要按拍攝時(shí)間或自定義序號(hào)排序需要自行擴(kuò)展比較器。3.3 圖片壓縮控制PDF體積的關(guān)鍵把多張高分辨率圖片直接塞進(jìn)PDF生成的文件會(huì)大得離譜。一張4000x3000的JPEG照片不處理直接嵌入PDF體積可能在8~12MB。如果有一百?gòu)堖@種照片PDF就是1GB級(jí)別的怪物。PDFBox提供了一個(gè)簡(jiǎn)單有效的壓縮方式用JPEGFactory替代LosslessFactory。前者會(huì)讓PDFBox對(duì)圖片重新編碼你可以用JPEGFactory.createFromImage(document, image, quality)指定質(zhì)量參數(shù)0.0f ~ 1.0f之間0.75f通常是一個(gè)視覺(jué)質(zhì)量和體積的平衡點(diǎn)。// 替換上一版代碼中的 LosslessFactory 調(diào)用 PDImageXObject pdImage JPEGFactory.createFromImage(document, image, 0.75f);壓縮后單張4000x3000照片的體積能壓到1.5MB以內(nèi)一百?gòu)垐D片的PDF大約在150MB左右已經(jīng)相對(duì)可接受了。但要注意JPEG是有損壓縮如果業(yè)務(wù)要求圖片必須無(wú)損保存比如合同掃描件、醫(yī)療影像那就不能用這個(gè)方案老老實(shí)實(shí)用LosslessFactory。還有一個(gè)可以優(yōu)化的點(diǎn)如果圖片尺寸本身遠(yuǎn)遠(yuǎn)超過(guò)頁(yè)面能顯示的尺寸可以在建立BufferedImage時(shí)就做縮放。比如A4紙頁(yè)面滿幅顯示大約需要1500x2100像素的清晰度超過(guò)這個(gè)數(shù)值的圖片在打印和屏幕上已經(jīng)看不出區(qū)別了提前降采樣能顯著控制內(nèi)存和PDF體積。private BufferedImage scaleToFit(BufferedImage src, int maxWidth, int maxHeight) { int w src.getWidth(); int h src.getHeight(); if (w maxWidth h maxHeight) { return src; } double scale Math.min((double) maxWidth / w, (double) maxHeight / h); int newW (int) (w * scale); int newH (int) (h * scale); BufferedImage resized new BufferedImage(newW, newH, BufferedImage.TYPE_INT_RGB); Graphics2D g resized.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g.drawImage(src, 0, 0, newW, newH, null); g.dispose(); src.flush(); return resized; }實(shí)測(cè)經(jīng)驗(yàn)在圖片壓縮上花費(fèi)的功夫比整個(gè)PDF生成邏輯都要多。因?yàn)镻DF文件的體積直接關(guān)系到后續(xù)的存儲(chǔ)成本和傳輸時(shí)間這個(gè)環(huán)節(jié)省不得。3.4 目標(biāo)生成一個(gè)可復(fù)用的工具類(lèi)上面三段代碼可以組合成一個(gè)完整的工具類(lèi)。注意我把文件讀取、圖片預(yù)處理、縮放、壓縮、PDF寫(xiě)入分成了獨(dú)立步驟這樣每個(gè)環(huán)節(jié)都能單獨(dú)測(cè)試出問(wèn)題時(shí)容易定位。真實(shí)項(xiàng)目中不建議把所有邏輯都堆在一個(gè)main方法里我之前為了趕工這么干過(guò)后續(xù)維護(hù)加需求時(shí)非常痛苦。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 生成PDF時(shí)內(nèi)存溢出OOM這是排行榜第一的問(wèn)題。原因基本集中在一次性讀取全部圖片到內(nèi)存、未釋放BufferedImage、以及沒(méi)有對(duì)超大圖片做降采樣。排查手段很簡(jiǎn)單在JVM啟動(dòng)參數(shù)里加-Xmx512m甚至更小復(fù)現(xiàn)問(wèn)題看異常堆棧指向哪一行。如果是createFromImage附近基本就是圖片太大或者積累太多。處理順序是先做降采樣再做單張?zhí)幚碜詈蠹觙lush()。三個(gè)都做了幾百?gòu)垐D片跑下來(lái)應(yīng)該很穩(wěn)。4.2 生成的PDF里圖片模糊模糊的根源通常是兩種情況一是縮放比例算錯(cuò)了把圖片畫(huà)到了比原始尺寸更大的區(qū)域二是drawImage傳入的寬度高度參數(shù)用了整型截?cái)鄬?dǎo)致比例輕微變形。檢查點(diǎn)確認(rèn)drawW和drawH與原始圖片的寬高比一致確認(rèn)PDF頁(yè)面尺寸沒(méi)有設(shè)置成過(guò)大的大尺寸。另外如果是用JPEGFactory壓縮質(zhì)量參數(shù)低于0.5會(huì)明顯看到壓縮噪點(diǎn)。4.3 圖片旋轉(zhuǎn)90度問(wèn)題定位方法打開(kāi)原始圖片文件如果圖片在系統(tǒng)自帶查看器里正常但在生成的PDF里橫過(guò)來(lái)了99%是EXIF方向信息沒(méi)處理。解決方案就是前面提到的解析Orientation字段并執(zhí)行對(duì)應(yīng)旋轉(zhuǎn)。常見(jiàn)Orientation值對(duì)照1為正常3為旋轉(zhuǎn)180度6為順時(shí)針旋轉(zhuǎn)90度即需要逆時(shí)針旋轉(zhuǎn)90度來(lái)修正8為逆時(shí)針旋轉(zhuǎn)90度需要順時(shí)針旋轉(zhuǎn)90度修正。4.4 頁(yè)面出現(xiàn)黑色或異常色塊基本是Alpha通道問(wèn)題。解決方式就是轉(zhuǎn)白底R(shí)GB代碼里已經(jīng)有了。如果是CMYK的JPEG現(xiàn)象是顏色明顯偏色或者拋異常需要引入額外的色彩轉(zhuǎn)換邏輯。4.5 大文件PDF打開(kāi)很慢原因通常是圖片未做壓縮PDF整體體積太大。上面給的JPEGFactory壓縮方案可以直接緩解。另外PDFBox還支持設(shè)置document.setAllSecurityToBeRemoved()這類(lèi)參數(shù)優(yōu)化打開(kāi)速度不過(guò)對(duì)圖片型PDF幫助有限。問(wèn)題可能原因解決方案OOM一次性讀取過(guò)多圖片、未釋放資源單張?zhí)幚? flush 降采樣圖片模糊縮放比例錯(cuò)誤、壓縮質(zhì)量低檢查寬高比、提高quality參數(shù)圖片橫向EXIF方向未處理解析Orientation字段并旋轉(zhuǎn)黑色背景Alpha通道未處理繪制到白色RGB畫(huà)布文件過(guò)大圖片未壓縮使用JPEGFactory 降采樣5. 場(chǎng)景擴(kuò)展單圖片多頁(yè)面、自定義排版與批量處理能力5.1 單張圖片跨多頁(yè)輸出有些場(chǎng)景下一張圖片非常大比如一張超長(zhǎng)截圖聊天記錄、網(wǎng)頁(yè)全頁(yè)截圖需要切成多頁(yè)輸出。思路是把圖片按固定高度切片每一片生成一個(gè)PDF頁(yè)面。int sliceHeight 1200; // 每頁(yè)顯示1200像素高度 int totalSlices (image.getHeight() sliceHeight - 1) / sliceHeight; for (int i 0; i totalSlices; i) { BufferedImage subImage image.getSubimage(0, i * sliceHeight, image.getWidth(), Math.min(sliceHeight, image.getHeight() - i * sliceHeight)); // 將 subImage 添加到新頁(yè)面 }這種方式生成的PDF每一頁(yè)顯示圖片的一個(gè)連續(xù)片段上下銜接屏幕閱讀很自然。注意getSubimage返回的圖片與原始圖片共享數(shù)據(jù)緩沖區(qū)如果原始圖片在循環(huán)中被flush()會(huì)影響子圖——所以切片完成后立即處理每片或者用BufferedImage復(fù)制一份。5.2 圖片與文字混排如果PDF里需要章節(jié)標(biāo)題、頁(yè)碼或者頁(yè)眉頁(yè)腳可以在PDPageContentStream里同時(shí)畫(huà)圖片和文字PDFBox本身支持showText配合字體配置就能實(shí)現(xiàn)圖文混排。cs.beginText(); cs.setFont(PDType1Font.HELVETICA_BOLD, 16); cs.newLineAtOffset(margin, pageHeight - 30); cs.showText(業(yè)務(wù)文件 - index); cs.endText();對(duì)于中文內(nèi)容需要加載中文字體文件通常是TTF否則中文會(huì)變成亂碼。這個(gè)坑不建議躲直接在資源目錄放一個(gè)字體文件用PDType0Font.load(document, fontFile)加載即可。5.3 批量任務(wù)并行化當(dāng)圖片數(shù)量特別多例如上千張單線程處理時(shí)間可能達(dá)到幾十秒甚至數(shù)分鐘??梢园褕D片列表分片用固定線程池并行處理每個(gè)線程生成獨(dú)立的PDDocument最后再用PDFBox的PDFMergerUtility合并。PDFMergerUtility merger new PDFMergerUtility(); merger.setDestinationFileName(outputPath); for (File tempPdf : tempFiles) { merger.addSource(tempPdf); } merger.mergeDocuments(null);實(shí)測(cè)下來(lái)四核機(jī)器上并行處理的加速比大約在2.5~3倍之間內(nèi)存占用會(huì)比單線程高需要根據(jù)圖片大小調(diào)整分片數(shù)和每個(gè)線程處理的圖片數(shù)量上限。并行化的前提是每張圖片的處理相互獨(dú)立這個(gè)場(chǎng)景天然滿足。6. 實(shí)操總結(jié)與避坑指南項(xiàng)目做到后面我自己的體會(huì)是圖片轉(zhuǎn)PDF不難難的是在真實(shí)業(yè)務(wù)約束下把內(nèi)存、體積、清晰度、順序、方向這些因素同時(shí)控制住。幾個(gè)值得沉淀的經(jīng)驗(yàn)第一圖片處理鏈路中每一個(gè)BufferedImage都是資源不是在用完之后馬上flush()就是在計(jì)算完尺寸后立刻降采樣不要讓大圖在內(nèi)存里停留超過(guò)必要的時(shí)間。第二PDFBox的LosslessFactory與JPEGFactory不是隨便選的。業(yè)務(wù)要求無(wú)損就選前者業(yè)務(wù)強(qiáng)調(diào)體積可控就選后者兩者切換非常容易所以建議把壓縮開(kāi)關(guān)做成一個(gè)可配置參數(shù)而不是寫(xiě)死在代碼里。第三圖片排序邏輯一定要顯式設(shè)計(jì)。按文件名排序看起來(lái)簡(jiǎn)單但如果文件名是1.jpg、2.jpg、10.jpg字符串排序會(huì)得到1、10、2的順序這種問(wèn)題不跑到實(shí)際數(shù)據(jù)上很難發(fā)現(xiàn)。需要自然排序時(shí)可以用Comparator自行比較數(shù)字部分。第四保留原始圖片。PDF生成只是導(dǎo)出動(dòng)作不意味著原始素材可以被刪除。很多項(xiàng)目上線后才發(fā)現(xiàn)用戶需要的是PDF的同時(shí)還需要保留原圖做編輯這個(gè)需求往往等到開(kāi)發(fā)完成后才會(huì)提出來(lái)。這些經(jīng)驗(yàn)不是一兩次就能總結(jié)全的好在這個(gè)方案本身足夠簡(jiǎn)單后續(xù)維護(hù)起來(lái)壓力不大。如果在實(shí)際使用中遇到新的問(wèn)題回到這幾個(gè)關(guān)鍵環(huán)節(jié)排查大概率能找到答案。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
啊啊啊啊啊啊啊啊啊在线观看| 在线综合网| 国产无码高清操逼视频| 欧洲精品久久| 红杏大香蕉| 无码不卡八戒| 亚洲熟女一区二区| 色五月天AV| 色成人Www精品永久观看| 国产欧美另类久久久精品课程| 女同在线视频一区| 精品一区二区成人动漫| 欧美成人A√在线一区二区| 一区二区三区色综合| 久久久久国产无av| 网站A V在线| 日韩本不卡视频在线观看 | 偷窥自拍亚洲色图| 操一区| 久久伊人最新网址视频| 老熟女天天操| 操淫穴亚洲五月丁香| 美女尤物福利视频| 天天操天天射青青草| 97国产高清视频在线观看| 97精品视频| 日韩97视频| 中文字幕在在线观看网站| 国产剧情一区在线观看| 九九综合久久| 国产女人91精品嗷嗷嗷嗷| 国产精品久久久久无码Av网曝门| 亚洲精品乱码线路中文字幕| 五月天婷婷在线看| 爱爱动态60秒| 亚洲国产成人综合碰碰三级经典| 黑人免费福利视频| 97碰| 91色狼| 激情色播| 久热91| 亚洲免费人妻在| 69少妇一区二区| 人妻9117c| 午夜精品久久99蜜桃的功能章节| 男人的天堂久久| 激情情色五月天| 最新9久久久9免费视频| 欧美日韩亚洲少妇寂寞影院正在播放| 久久久久久免费电影| 国产视频小说| 4虎在线视频| 久9久9精品| 青青草日本中文字幕| 四月丁香婷婷| 和协无码影院| 亚洲色香| 天天综合网合集91| 大逼色网站| 熟妇无码视频三区| 爱爱啊啊啊| 国产精品内射婷婷一级二| 日本一区二区亚洲综合| 91人妻做a观看视频| A级毛片在线看免费| 人妻一区二区三区视频 | 色综和网| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 久久无码成人| 好看的久久不射无码影视影院| 亚州久久9| 99re6国产精品99re| 日逼97| 人人看黄色视频| 久久久久亚洲三级电影| 国产高潮AA片免费看| 26uuu国产| 超碰在线人妻不卡| 少妇高潮一区二区三区在线| 韩国免费播放一级毛片| av日韩在线观看电影| 亚洲另类在线观看| 久久久久久久久久黄色网| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 97人人干| 亚洲AV无码久久精品蜜桃小说| 91/欧美| 欧美后入式| 97精品久久| 乱伦av国产| 亚洲五月天激情| 久久超碰、| 美女黄色91| 日本操逼aaaaa| 国产极品美女高潮无套在线观看| 91天天日| 大学生美女口爆| 色五月第四色| 美女啊啊啊啊啊啊| 爱av免费| 制服中出中文人人精品| 在线岛国新天堂8| 日韩欧美亚洲一区二区三区影院| 九久9热| 欧美亚洲宗合色性图| 国产精品久久蜜乳av| 6080YYY午夜理论片在线观看| 99自拍视频| 黄色不卡视频| 日韩免费av片高清无码| 五月丁香六月激情综合| 国模91| 激情婷婷综合久久| 麻豆久久久久久久久丝袜 | 欧美一区二区三区日韩| 一区二区三区四区在线不卡| 亚洲性爱电影| 插入粉嫩少妇视频| av在线免费一区二区| 久久免费看高潮毛片韩国| 久久有码视频| 欧美熟女操屄| 欲色啪| 影音先锋日本乱伦| 久久久久久久九九九九九九| 亚洲欧美情色| 久久久com| 少妇一区二区三区| 2010男人的天堂| 日韩精品一二三| 日韩人妻一区二区精品| 97在线视频免费看| 99国产精品人妻人伦| 久久久久久九| 成人A片男人的天堂| 久久成年片色大黄全免费网站| 激情五月天色色网| 欧美色网络| 天堂种子在线www网资源| 九九九久| 一区二区三区精品黑丝白丝酒店对鸡 | 青青草亚洲一区| 久久人妻| 干b在线性社区| 欧洲综合无码| 国产精品久久久亚洲第一牛牛_在线观看 | 九九九九久久久| 欧美天天干| 麻豆天美电影一区二区| 免费人成毛片乱码| 久久婷婷亚洲欧| 精品亚洲国产成人av网站| 亚洲日本天堂| 亚洲综合色男人网| 约操熟妇| 97精品在线视频| 九九九九九九九九九九九免费国产| 极品销魂美女一区二区| 成人综合视频久久| 操逼操操操91| 美女被啪到深处抽搐视频| 天天干2区3区| 色一色综合网| 91夜色| 岛国人妻少妇av在线观看| 欧美日韩国产三级黄色| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 麻豆AV一区二区天美传媒| 亚洲综合另类欧美久久久| 无码操逼视频一下| 一本大道久| 嗯嗯嗯好爽| 国产一区二区成人av在线播放| 天天综合网1| 国产色呦呦| 中出欧美| 狠操91,com| www.99在线| 色黄污美女啪啪啪免费网站| 大鸡巴久久| 超碰97玖玖爱| 日本天天吊| 强歼乱伦资源网| 九九热精品视频六| 后入式视频国产自| 91电影色诱| 99操碰| 欧美黄色片在线播放| 99最新日韩偷拍视频| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲天天更新| 精品二区久久| 国产精品不卡少妇白| 久久久久久久久久久999| 99热在线播放| 亚洲色综合| 情色五月天网| 熟女丰满人妻一区| 九九热超碰| 精品人妻av在线播放| 超碰欧美97| 亚洲在线观看| 色99久草| 一二三四区操操Av| 欧美 日韩第一性色| 白丝jkav| 欧美乱妇狂野欧美在线视频| 精品97精品97| 操美女人妻| baisiav| 丁香五月AV| 欧美日韩操操操| 日本操逼二区| 91精品国产麻豆国产自产在| 熟女乱伦二区| 天堂岛av| 97视频观看| 啊啊啊用力在线观看| 红杏大香蕉| 亚洲无码99| 五月丁香| 人妻夜夜爽天天爽麻豆三区网站| 精品久久在线区一区| 99国产精品人妻人伦| 日本特黄f c2| 久久久久久久久久久97| 嗯嗯啊啊亚欧精品| 久久久久久久久久精| 天美传媒Av在线| 青娱乐手机日韩在线视频| 热久日综合| 三级精品三级在线观看| 国产欧美精选激情视频| 成人福利视频网| 日韩一级片在线看| 97超碰国产精品| ss久久| 亚洲中文字幕乱码无码一区二区| 神马久久久久久久久久| 东京男人天堂| 97免费视频在线| 亚洲情色综合| 美女视频尤物网在线看| 人妻在线视频| 看日韩美女二区三区免费操逼视频| 99热这里只有精| 精品美女在线视频| 五月天九九日国产精品一区二区三区| 91美女片在线| 亚洲福利中文字幕在线| 超碰 另类 欧美 | 国产风韵犹存熟妇三区| 中文字幕三四五区| 久久夜黄色无码A级大片| 久久久久国产一区二| 素人播放一区| 嫩草 我啊~嗯~在线| 丰满人妻-区二区三区免费看 | 亚洲国产精品9999在线观看| 性爱av网站| 在线啊啊啊啊| 久久久青青草| 久久久久久日韩| 9色在线| 安徽熟妇视频| 极品色综合| 在线无码视频| 中文字幕一区av| 超碰97在线中文| 97爱| 中文字幕老熟妇黄色视频| 九九九热精品| 自拍偷拍 日韩欧美| 国产精品探花在线| a人欧美综合天堂麻豆| 偷拍亚洲情色| 熟女人妇一区二区三区| 小情侣高清国产在线视频| 男人的午夜天堂| 亚洲人妻久久久| 欧美天堂超碰97| 超碰79人人乐| 99精品高潮| 欧美日韩美女精品久草一区二区三区| 国产风韵犹存熟妇三区| 性感美女啊啊啊在线| 亚洲久草AV色图| 东京太热男人的天堂久久久| 偷拍视频青青草在线视频| com 首页 18岁 禁区 女优 免费 精选 同城 | 精品久久久亚洲AV成人网站| 午夜欧美精品久久久| 欧美精品不卡一二三四在线91| 天天天做天天天爱天天天爽| 一起草三级AV电影在线观看| 亚洲图片色图欧美另类| 免费毛片在线播放| 综合色图,成人综合网| 啊啊啊好舒服视频在线观看| av天堂加勒比| 五月综合婷婷久久网站| 很黄很污的免费网站| 国产精品 午夜福利| 蜜桃一区二区三区| 精品日韩人妻视频| 人人人人人人少妇| 国模91| 黄片视频观看| 99综合网| 91第一页| 五月天婷婷综合| 日韩97精| 郑州宾馆老熟女露脸啪啪| 偷拍欧美激情| 超碰吊日色| 3d成人精品一区二区| 99精品热| 人人看人人插| 91色五月俺来也| 色图四区| 深喉吞精| 久久婷婷影院| 久久久久久综合久久伊人蜜月| 久久男女激情视频网站| 中出91视频| 狠狠激情综合狠狠操中文字幕| 日本999精品| 国产精品久久久久无码Av网曝门 | 97爱爱爱| 亚洲国成人情色好看电影| 超碰免费在线| 91 丝袜在线播放| 亚洲精品丝袜-不卡成人免费……| 国产人人干| AV污污污污| 国内外毛片在线观看| 欧美精品自慰系列寂寞少妇| 精品九九九九九九| 天美传媒AV国产在线| 偷看洗澡一二三区美女| 最新亚洲黄色免费电影 | 青青草AV色| 亚洲综合色网| 91精品久久久久五月天精品| 性感美女91影视| 麻豆久久久久久久久丝袜| 一本精品日本在线视频精品| 成人小电影网站tex| 另类av综合久久| 蜜臀少妇一区二区| 天堂中文资源在线bt| 超碰在97| 久久久久久久久久久久久久久性生活视频 | 欧美日综合| 色婷婷六月丁香七月婷婷| 久久久久久久九九九九九九| 丁香五月激情啪啪| a在线视频免费观看| 色臀AV| 国产在线激情| 久久大香蕉97| 蜜臀久久99精品久久久久电影| 男人下部插入女人下部| 97日本超碰综合| 五月丁香啪啪啪| 欧美性爱系列| 伦在线97| 91爰爱欧美| 二区熟妇韩日| 91欧美偷拍| 婷婷月色| 91大学精品激情戏| 色女综合| 超碰97亚洲区| 六月婷婷一区二区三区| 欧美在线综合| 黑丝制服中文字幕 | 欧美综合色综合| 色网亚洲人| 亚洲精品久久一区二区三区蜜桃臀| 97人人爱人人做人人乐| 男人干美女| 黄总AV色图| 黄色片G G G| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚州色国| 欧美性爱超碰97| 亚洲欧美清纯| 亚洲囯产精品女人久久久| 国产精品呦一区二区三区| 欧美久久伊人| 7月婷婷综合| 色五月69夫妻| 精品人妻一区二区三区四区| 亚洲欧美色图小说| 99色色网| 精品人妻一区二区乱码一区二区| 国产精品69久久久久久久| 国产精品自拍视频| www.yeyecao| 国产呦精品一区二区三区下载| 丰满欧美少妇| 后入式999| 中国一级αV| 中文字幕成人| 久草线上视频免费看| 免费岛国一级片| 六十路日本| 91在线视频免费中出| 97碰久久| 色吧五月| 色色97爱| 麻豆天美久久91| 国产精品99精品视频网站| 91天堂色男人的天堂| 91九色丨国产丨爆乳| 国产91 丝袜在线播放00-百度| 日韩乱伦影音先锋| 情色图区| 嗯嗯嗯好爽| 亚洲怡春院| 国内偷自视频区视频综合 | 婷婷五月天网| 久久精品一区二区| 又大又白奶子| 亚洲 欧美 精品专区 极品| 中文字幕 一区二区 亚洲无码| 视频二区美腿制服人妻欧美| 五月婷婷影院| 岛国福利在线精品播放| 色九九九九| av在线观看不卡网站| 99999久久久久9国产精品| 1024精品在线| 超碰97久久国| 91丝袜在线观看| 国产 亚洲 丝袜 制服| 免费视频无码| 三级特黄60分钟播放| 97人妻免费中文字幕| 中文一区二区| 蜜臀精品1区2区| 三级激情网站| 欧美日韩中文视频播放| 久久九操在线观看| 色综合加勒比四四季| 影音先锋乱| 久久久久久久| 欧美一区二区三区成人性生活| 狼天天狼天天大香蕉| 亚洲精品成人激情在线| а√天堂资源官网在线资源| 97热视频在线观看| 欧美大码在线视频| www…国产操逼| 一区二区三区视频| 欧美少妇色图| 国产高清自拍| 爆操无码| 波多野42部无码喷潮在线观看| 五十路一区无码| 97超碰人人操人人操| 国产精品日日摸天天碰| 91美| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 天天摸夜夜添无码小视频| 91碰超| 老熟女乱伦一区| 九九九色| 在线a亚洲视频播放在线| 欧美偷拍| 乱伦Av网| 国产精品一区二区三区免费视频| 大香蕉中文在线| 黄片免费视频2019| 婷婷综合五月| 亚拍在线| 久久久九九| 美女操逼A A| 亚洲AV成人在线| 2017天天透天天通天天擦| 欧美性夜| 日韩情色一区二区| 黄色激情电影在线观看| 怡红院怡春院| 熟女人妻精品一区二区视频| 超碰精品在线| 欧美亚洲清纯| 美中日韩无码| 97在线青| 亚洲国产成人精品无码专区| 中文字幕视频在线观看一区二区| 78精品| 久久99亚洲精品久久99果| 东北操逼| 91一起操| 欧洲性爱无码区| 亚洲最大黄网| 国产99精品一区二区三区免费| 狼人综合婷婷激情四射 | 91爱网| 久久久久久久一级黄色打同平台| 狠狠爱夜夜| 欧洲综合视频| 国产多人在线观看视频| 加勒比人妻综合| 亚洲一区二区性爱电影| 国产日产精品久久快鸭的功能介绍| 99这里都是精品| 日韩一级欧美一级国产一级台湾| 偷拍欧美激情| 中文字幕日韩人妻视频一区二区三区 | 天天综合网一91网| 蜜臀操逼黄色视频操的好爽| 国产一进一出视频网站| 亚洲AV秘 精品久久老牛影视| 国产精品久久久久av| 久久同城AV| 日产操逼| 99抽插| 97视频在线| 国产一区二区三区影片| 嗯嗯啊啊好大好爽| 可能人人看人人摸| 欧美五区| 亚洲国产ⅴ高清在线观看| 日本久操视频| 青娱乐老司机视频| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产激情视频在线观看| 天堂亚洲精品久久老牛| 免费在线观看国内色片网站网址| 91无码人妻| 欧美日韩中文亚洲v在线综合| 成人AV素股で擦久久| 国产欧美在线观看免费观看| 欧美情色男人的天堂| 99re免费视频精品全部| julia ann久久| 狂操嫩妻视频一区二区三区| 国产精品福利资源在线尤物| 青青草大香蕉在线视频| 亚洲欧洲无码97久久精品| 无码精品久久久久久亚洲| 97色色视频| 亚洲视频中文一区| 色偷偷人人玩人人舔人人操人人摸人人爽| 自拍偷拍2025在线观看| 97亚洲综合影院| 蜜屁Av| h在线看免费版在线看| 久久人妻| 99超碰碰| 九九九九九九九九九九九蜜桃 | 校园春色综合| 欧美中出1| 99热在线观看| 大香蕉92| 99久热精品99re6热| 日本高清电影欧美色图| 久久精品99| 精品久久久久av影院| 就去色综合| 97爱b| 91精品人妻一区二区三区蜜桃臀| 国产精品黄色三级av| 91天美| 99re视频在线播放青草| 俺也射| 91网站在线播放| 骚女高跟AV在线| 国产亚卅97| 欧美性爱一区| 青青草男人天堂| 九九拍拍精品视频在线播放| 国产乱弄免费在线视频。| 另类综合另类| 日本一片一区| 碰人碰碰人人开房人肉| 天天草AV| 熟妇色99| 五月丁香六月综合缴清无码 | 91九九| 狠狠狠一区二区三区| 蜜臀操逼黄色视频操的好爽| 欧美一区二区亚洲天堂| 91大学精品激情戏| 日韩情色视频| 99国产精品免费| 67914在线兔费成人视频| 欧美 亚洲精品首页| 日日骚一区二区三区| 9 1果冻精品视频| 少妇被c 黄 免费观看| 色婷婷久久| 日本欧美亚洲高清在线看| 国产树林里野战在线看| 欧美综合骚| 色综合99999| 日韩97在线| 无码区蜜乳| 无遮挡h肉动漫在线观看| 日韩素人无码一区二区三区三州| 欧美 亚洲 大香| 一本色道久久综合亚洲二区三区| 天天影视色香欲综合网小说| 国产一级特黄大片处女| 久久久久久久人妻| 国产妇女精品视频青青草| 亚洲三级。日韩三级| 一级久久久久久久久久久| 亚码激情| 91精品国产91熟女| 色色婷婷丁香| 日本一二三免费久久| 大香蕉www.超碰| 丁香六月综合激情| 高清无码91| 亚洲午夜av| 欧美性五月| av日韩在线观看电影| 爱欲AV| 男人女人18禁片免费看网站| 色综合91| 97久久网| 超碰激情808| 狠狠色狠狠色狠狠五月| 成年男人的天堂| 91网九色蝌蚪操熟女| 综合网,亚洲,欧美| 国产亚洲深夜激情| 亚洲永久永久永久永久一级一级一级精品 | 中文幕97| 亚洲激情在线一区二区| 性色A∨91| 日韩人体偷拍| 亚洲欧洲日韩天堂av| 91网站在线播放| 色婷婷丁香五月| 极品肉射| 亚洲视频小说| 国产亚洲综合欧美一区| 岛国在线免费视频| 亚洲人妻久久久| 神马视频久久久久久| 人人操人人色网| 亚洲九九爱| 中文无码一二三区| 日本人人操人人操| 和协影院中文字幕三区| 五月丁香影院| 午夜.DJ高清在线观看免费7| 欧美日韩狠狠爱| 9999亚洲精品| 欧美日韩高潮喷水91| 亚洲一卡2卡3卡4卡乱码网站 | 99热国产精品| 欧美性爱一区二区三区四区| 久久天天摸| av大香蕉| 蜜桃av综合网发布| 欧美精品23| 成人26uuu| 亚洲.欧美.丝袜.中文.综合| 精品日韩中文在线| 自拍偷拍2025在线观看| 国产亚洲女v在线观看| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 一级岛国大片| 日本一区视频在线观看| 天天干天天燥| 黄色AAAAA欧美| 亚洲国产一级黄色视频| 日韩av无码网站| 亚洲一级黄色毛片| 精品国产一区探花在线观看| 亚洲无992tv| 国产一区二区成人av在线播放| 久久人妻熟女一区二区| 人人妻人人爽一区二区三区| 亚欧美综合网| 久久日韩精品一区二区| 先锋色眉乱伦资源| 亚洲强奸乱伦影视网| 国产曰批免费观看久久久| 人妻 丝袜美腿 中文字幕| 人人操,操人人| 久久人妻丝袜一区二区三| 青青草国产亚洲精品久久| 亚洲s色图| 日韩情色一区二区| 成人无码在线超碰网| 最新日产中文在线麻豆| 中出后入| 秋霞网—男女啪啪亚洲免费体验区| 亚洲成人久久一区二区| 精品妇女一区二区三区| 日韩精品作爱导航| 老鸭窝成人| 91香蕉国产尤物视频| 搡老女人老妇女AAA一VU麻豆| 久久婷婷视频| 大香蕉92| 日韩99精品视频综合区| 人妻久久久| 欧美熟女逼久久久久久| 中文字幕日韩电影人妻| 高凊专区人人操| 又黄又硬又粗又长国产视频| 夜夜天天噜狠狠爱2021| 少妇蜜汁| 亚洲综合电影| 五月丁香六月婷综合成人综合 | 免費黃色視頻觀看一| 九区国产| 国产欧美日韩精品中文| 国产精品一区二区后入| 欧美一区二区三区不卡高清视频| 骚逼高潮久久精品| 亚洲人妻日日日| 99性视频| 91久久九九精品国产综合| 黄色成品网站| 亚洲 欧美 91| 2020天天色综合| 国产一区二区三区导航| 风月影院男女十八禁| 偷拍自拍在线视频观看| 超碰97亚洲区| 天天爱天天韩国日本牛牛牛牛| 69精品| 屌妞视频久久久久久久| 中文字幕亚洲永久精品| 亚洲女优有码无码高清| 亚洲欧美精品一区天堂久久 | 成人精品一区二区91毛片不卡| 青青欧美| 亚洲色欲一区二区三区| 日本午夜操逼| 亚洲久久久| 久久久久亚洲精品| 影音先锋视频在线| 男人的天堂1024| 爱爱动态试试看6 0秒| 中日韩久久久| 亚洲自拍偷拍视频在线| 久久风骚城市| 一二三四视频在线社区中文字幕| 超碰在线国产| 99re国产精品视频| 国产高清午夜成人在线观看| 久射吧| 9久久美女首页| 99国产精品人妻人伦| 成人免费福利网站国产| 中文字幕美女91| 天天网综合| 欧美性暴力猛交| 欧美激情精品| 综合 亚洲 欧美| 97人人爱人人乐| 亚洲日本天堂| 青青草好吊| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚州色站 日韩电影| 男人天堂.AB| 97人妻色| 五月天色电影| 亚洲揄拍网| 天天综合网AV91| 91女网站| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 亚洲春色一区二区三区| 国产高清成人免费视频| 人妻三级在线中文字幕| 日韩精品在线视频,日韩精品……| 97人人爱人人乐| 在线二区不卡| 91老熟妇| 成人 日本A片无码8888| 伊人色综合网电影| 97人人干人人操| 性感女人网页在线观看视频| 午夜久久一区二区无码中出| 后入 亚洲 美女 射| juliaann丝袜大战黑鬼| 超碰在线97国产| 男人的天堂久久狠| 狠久久| 天天视频网站黄| 欧美性爱三区二区| 天天看综合网| 久久婷婷一区| 亚州免费啪啪视频| 不卡超碰护士AV在线免费播放| 熟妇国产免费一区| 欧美人体性爱互联网第一页婷婷日本| 92性色国产午夜福利在线661| 亚洲最大无码中文字幕网站| 国产美女91视频| 男人的天堂va在线| 一区二区三区精品视频| 亚洲蜜臀懂色| 久久国产乱子伦精品免费女,网站| 国产一区二区在线播放量| 亚洲风情在线观看| 人妻日日夜夜精品| 久久久久久久9最新免费视频观看| 起碰97| 精品久热| 家庭乱伦麻豆| 96AV久久久| 国产亚洲性生活视频播放| 欧色综合| 极品白嫩美女白浆成人福利在线看| 久草色悠悠在线视频| 嗯嗯不要 视频| 亚洲色图欧美色图制服丝袜| JuliaAnn丝袜熟女系列| 六月婷婷综合| 国产无码精品久久久久久| 五月天久久婷婷亚洲| 中国探花熟女| 欧美日韩中文视频播放| 婷婷15月天青娱乐| 国产 v乱码一区二| 成人AV在线网站| 九九热精品在线| 国产精品蜜乳AV| 国产精品播放| 亚洲怡春院| 久久天天摸| 日本三级R| 熟妇乱伦一区二区| 人人操人人精品影片| 日本青青草在线| 色婷婷小说| 国产女人高潮嗷嗷嗷叫小说 | 国厂麻豆77q4| 少妇免费视频| 日韩欧美经典在线观看| 国产强奸乱伦无码视频| 久草精品在线| 久9爱精品| 夜夜 中文视频rt| 天堂涩涩| 欧美大片一区二区三区 | 久久ww| 九九99精品| 超碰成人国产| 十八禁啪啦拍视频无遮挡| www.伪伪| 亚洲图片色图欧美另类 | 无码黑人精品一区二区三区三| 综合久久少妇中文字幕| 九热中文字幕| 翔田千里无码一区| 日本一区二区亚洲综合| 人人搞人人插人人操| 五月亭亭六月丁香| 久久久久久亚洲Av无码| 操国产逼| 精品性爱一二三区| 黄片直播三级黄片两女一男| 狠狠干,狠狠操| 啊啊啊不要好疼视频| 射丝袜高跟鞋99| 麻豆区99999| 狠狠操狠狠燥| 99re超碰| 欧亚乱色熟女一区二区| 狠狠婷婷亚洲中文综合久久| 亚洲欧美首页| 3P乱轮视频| 婷婷视频网| 久久精品国产99国产精品亚洲| 亚洲的天堂网| 蜜臀99久久| 欧美综合娱乐久久| 草草影院在线视频| 欧美少妇色综合| 亚洲日韩美女丝袜美腿人妻视频| 最新日本中文字幕| 婷婷五月成人| 久久久久久大| 91c色| 无码一区二区三区四区五区六区七区八区九区十区视频 | 老熟女乱子伦中文字幕一区二区| 免费啪啪啪网站18岁| 日韩欧美被操黄免费观看| 夜夜嗨一区二区三区直播内容| 国内偷自视频区视频综合| 97久久超碰| 欧美成人精品一区二区男人蜜臀| 综合五月天| 91超碰人人操| 超碰欧美97资源| 国产免费操逼| 久草久日| 蜜乳AV网址| 久久久精品久久| 另类TS人妖一区二区三区| 青青草伊人久久| 欧美一级在线观看成人| 熟女日韩| 亚洲丝袜二区在线| AV九九| 久久ww| 91超碰丝袜制服| 91粉嫩萝控精品福利网站_精品影音先锋国 | 91ise欧美| 国产在线视频二区| 久草老司机| 婷婷综合网站| 伊人网高清| 欧洲免费一区二| 欧美一区二区三区入口| 美女91在线观看| 干婷婷综合网| 天天综合色图| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 成人资源中文字幕在线观看| 久久综合婷婷| 高清国产精品无码| 四虎在线免费视频| 美女露胸露屁股| 日本激情免费大片| 欧美美女视频| 青女在线| 色综合91| 成人网站 免费观看| 国产一级高清免费观看| 亚洲十八禁止| 熟妇最新先锋一二三区| 熟女被操视频网址| 日韩激情毛片一级久久久| 九九九九九九九九九九精品视频| 美国日韩黄色片| 日本操逼视频免费| 熟女网站最新| 欧美少妇第一页| 日韩精品一区二区三区四虎影视| 一区二区三区在线美女| 玖草在线视频| 欧美色九九| 激情婷婷黑人91| 天天舔九色婷婷| 色爱欲亚洲| 日韩99神马视频播放| 97色在线| 夜夜一区二区| 99色热| 色色无码| 人妻少妇精品一区二区三区| 99色综合| 97亚洲性爱| 性站| 中文字幕少妇色| 国产伦精品免编号公布| 国产AV天美| 日本久久999| 老熟妇综合| 97精品国产手机| 欧美天天综合站| 国产精品国产| 色综合天天爱去电影网| 蜜臀久久99精品久久久| 久久精品国产亚洲5555| 高潮的A片激情扒开一区| 免费日韩黄片| 国产十八禁视频| 亚av顶级裸体一区二区三区四区五区 | 啊啊啊好舒服好爽啊啊啊视频| 密臀AV在线| 九九九草| 天天综合亚洲综合| 99久久精品欧美国产| 人人人人插| 亚洲,欧美,春色,另类| 91色图片| 亚洲Av无码成人精品国产| 2019久久久久久久久福利| 五月天激情小说| 试看福利| 国产精品在线免费| 一本一道波多野毛片中文在线| 尤物一级在线免费观看| 午夜天堂网| 久草成人| 亚洲欧洲综合视频在线| 大香蕉宅男伊人| 熟女少妇视频| 激情综合婷婷| 91N综合网在线| 视频国产欧美在线播放| 久久98| 日韩av三四区| 嗯嗯啊啊亚欧精品| 欧美性色网| 偷窥自拍A片| 91天天综合在线观看| 中文乱码字幕观看| 久久精品色欧美aⅴ一区二区| 夜夜狠狠躁日日躁色视频| 精品十三区| 亚洲人成网站7777| 九九天堂| 久久久久久久久999| 日韩国语字幕| 欧美日韩狠狠爱| 婷婷五月天激情小说| 密臀在线一区尤物| 久久香蕉国产传媒一区剧情天美| 91精品人妻一品二品三品| 日韩中文字幕在线视频观看| 国产精品69久久久久孕妇欧美| 人妻精品一区二区在线| 偷拍亚洲情色| 日韩另类色图| 大香蕉视频一二三区| 天美传媒Av在线| 美中日韩无码| 啊啊啊啊二区好大| 91无码西班牙视频在线| 日日夜夜精品视频| 国产白嫩精品久久| 国产偷拍自拍在线视频| 国产精品农村妇女精品| 精品熟女一区=区三区| 欧美精品99久久久**| 自拍第一页| 内射中出日韩在线观看视频| 操逼1区| 亚洲 欧美 第一页| 亚洲激情色片| 静品嫩模一区二区| 1级黄色夫妻对换性交免费看| 亚洲97资源| 美腿丝袜偷拍亚洲欧美| 色五月婷婷五月天| 欧美日韩国产高清在线一二三区| 人妻啊啊人妻啊| 黄色AAAAAAAAAAA大片| 五十路熟女在线不卡观看一区二区| 自偷自拍的亚洲视频| 亚洲小电影免费涩涩成人在线高清 | 91 综合网| 亚洲综合大片| 五十路二区在线| 国产久久久9999| 99热网站| 男人的天堂啪啪| 激情综合五月| 蜜乳AV色欲AVAV无码| 尤物一级在线免费观看| 无码精品人妻一区二区三区妖精| 蜜臀久久99精品久久久久久婷婷| 少妇大屁屁| 国产嫩草精品A88AV| 亚洲激情在线| 久久精品店| 天天综合网~91| 丁香色狠狠色综合久久小说| 日日骚中文字幕| 精品日韩| 久久熟女久| 人妻丝袜肏逼| 91殴美大片| 99re69| 欧美日韩国产色五月综合在线| 91熟女视频网| 四虎影视精品| 久久久新亚洲AV| 亚洲色图 综合| 美女淫穴| 九九九九免费高| 东北老女人的激情视频| 成人熟女视频一区二区三区| 天天久久久久久| 91宗合网| 国产黄色视频久久| 久久久精品视频免费观看| 操逼日韩无码 | 无套内射性感少妇视频| 99re这里只有精品3| 国产精品色哟哟| 91精品人妻一品二品三品| 无码高清操逼网址| 日韩av乱伦| 超碰1024久久| 丝袜亚洲91| 亚洲天堂2020| 一级久久久久久久久久久| 日本高清电影欧美色图| 人人澡人人弄| 婷婷婷婷婷婷久久久久| 国内三级自拍小视频在线观看| 韩国久久97| 日本黄色精品| 久久九九视频九九视频| 久久色激情一区二区三区| 东北操逼| 九九热九九| 99ri精品| 亚洲国产97在线精品一区| 成人性爱视频在线看| 国产精品久久久久久夜夜夜| 4虎在线观看| 九九这里只有精品| 尤物av网站| 免费av在线播放二区| 欧美后进式| 久久久久久日韩| 亚州久久9| 日韩在线性爱免费视频| 尻女朋友一夜| 人人干黄色| 亚av顶级裸体一区二区三区四区五区 | 校园春色家庭伦理欧美激情| 91精品微拍福利| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 一二三区在线| 最新日日夜夜天天干干| 久9久精品视频| 国产不卡免费在线视频| 热G综合热G中文| 性站 | 波多野结衣之双飞调教在线播放 | 超碰这里有精品| 最新加勒比丝袜在线| 隔壁邻居波多野结衣中文字幕| 欧美91精彩| 久久天堂婷婷网| 翔田千里一区二区三区奶水| 久久极品伊人| 性在久久久久久| 亚洲色人| 欧美丰满少妇交换91欧美精品| 九九激情网| 国产东北女人在线视频| 酒色综合网| 伊人精品视频| 97久精品| 337p大胆噜噜噜噜噜91Av| 亚洲婷婷综合网| 五月天亚洲网| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 国产久久久9999| 久久综合五月天| 一级免费啪啪片| 日熟女| 精品性爱| 99re超碰| 91久久久久久久| 国产天美欧美| 天天色香欲综合网| 99视频只有精品| 国产高清精品福利| 亚洲制服欧美另类内射| 逼逼逼逼操操操操操操操操操午夜剧场|