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

ARTICLE DETAIL

資訊詳情

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

Excel服務(wù)端截圖:jar選型、渲染參數(shù)、水印與線上排障

Excel服務(wù)端截圖:jar選型、渲染參數(shù)、水印與線上排障 簡介面向需要在 Java 項(xiàng)目中實(shí)現(xiàn) Excel 表格與圖表截圖導(dǎo)出的開發(fā)者這份資料圍繞 Aspose.Cells 去水印與截圖場景整理適合作為個人學(xué)習(xí)與功能驗(yàn)證的參考。壓縮包共 5 個文件約 12MB包含 2 個 jar 庫文件、1 個 Java 演示程序、1 個 xlsx 示例工作簿和 1 個本地 Maven 導(dǎo)入說明覆蓋從依賴引入到樣例運(yùn)行的多個環(huán)節(jié)。已有 922 人學(xué)習(xí)下載說明該方向具備一定實(shí)踐需求。讀者可借助演示代碼快速理解 Aspose.Cells 的調(diào)用方式結(jié)合示例工作簿對照截圖與圖表導(dǎo)出效果并通過導(dǎo)入說明減少本地倉庫配置時的阻礙資源描述中也提示了使用細(xì)節(jié)與缺失代碼的查閱位置便于進(jìn)一步排查問題。需注意僅供個人學(xué)習(xí)請勿用于商業(yè)用途。1. 一張 Excel 預(yù)覽圖背后jar 包選型與那條甩不掉的水印上周有人把一個 excel截圖jar.zip 丟過來說用 Aspose.cells 把 Excel 導(dǎo)成截圖右下角永遠(yuǎn)壓著一條紅色評估字樣問「去水印」是不是改個配置就能解決。我拆開看完結(jié)論是這類 jar 包真正要解決的是「服務(wù)端把 xlsx 穩(wěn)定渲染成 PNG」這件事本身不復(fù)雜真正麻煩的是三處評估版限制怎么判定、渲染參數(shù)怎么影響成圖、容器里字體和線程怎么處理。它適合需要批量出表格預(yù)覽圖、報表縮略圖、審批留檔圖的后端同學(xué)不適合只想在瀏覽器里看表格的前端場景那種情況直接上在線表格組件更劃算。下面按「怎么選鏈路、怎么跑通、參數(shù)怎么調(diào)、水印從哪來、線上怎么排查」的順序拆一遍。2. 三條渲染鏈路怎么選從 POI 拼圖到 jar 包直出在動手之前先想清楚一件事Excel 截圖不是「把文件讀出來」這么簡單它本質(zhì)是一次排版渲染要把單元格樣式、列寬、合并、條件格式、嵌入圖片、圖表全部還原成像素。不同鏈路能還原的比例差別很大選錯了后面全是補(bǔ)丁。2.1 三條鏈路的能力邊界對照落到工程上常見的就三條路我按實(shí)際踩過的順序列一下。鏈路樣式還原圖表/圖片部署依賴單頁耗時典型適用場景POI 逐單元格繪制需自己寫 Graphics2D基本不支持純 Java低幾十 ms固定模板、列數(shù)極少的對賬表轉(zhuǎn) PDF 再轉(zhuǎn)圖高支持需裝辦公套件進(jìn)程中高2-5 s報表留檔、打印級輸出渲染庫直接出圖高支持純 Java 字體文件中200-800 ms服務(wù)端批量預(yù)覽、接口同步返回第一條路很多人一開始都會試POI 讀出 CellStyle拿 BufferedImage 一格一格畫。小表格能跑一旦遇到合并單元格、條件格式色階、凍結(jié)窗格就得不停補(bǔ)分支補(bǔ)到最后代碼比業(yè)務(wù)還長。第二條路是把 xlsx 丟給無頭辦公套件轉(zhuǎn)成 PDF再用 pdftoppm 轉(zhuǎn) PNG還原度是三條里最高的代價是要在容器里裝一個幾百 MB 的進(jìn)程冷啟動慢并發(fā)還要自己池化。第三條就是這份 jar 包走的路純 Java 進(jìn)程內(nèi)渲染一次調(diào)用直接吐 PNG 到磁盤或 OutputStream接口里能同步返回是預(yù)覽場景最省事的一種。選型判斷其實(shí)就一句話如果預(yù)覽圖要跟著接口實(shí)時返回、QPS 有要求走第三類如果是每天定時生成一批留檔圖、對還原度要求極高第二條更穩(wěn)如果表格結(jié)構(gòu)固定到列數(shù)都不變第一條成本最低。2.2 把 jar 包塞進(jìn) Maven 工程兩種引入方式如果目標(biāo)版本能從倉庫拉到直接在 pom 里聲明就行版本號以你手上 jar 包的實(shí)際版本為準(zhǔn)別照抄別人的dependency groupIdcom.aspose/groupId artifactIdaspose-cells/artifactId version${aspose-cells.version}/version /dependency拿到的是 zip 里的獨(dú)立 jar就走本地安裝把它推進(jìn)本地倉庫或私服團(tuán)隊(duì)其他人就不用各自拷貝了# -Dfile 指向解壓后的真實(shí) jar 路徑 # groupId/artifactId 保持與官方坐標(biāo)一致后面換倉庫版不用改 import mvn install:install-file \ -Dfile./lib/aspose-cells.jar \ -DgroupIdcom.aspose \ -DartifactIdaspose-cells \ -Dversion0.0.0-local \ -Dpackagingjar \ -DgeneratePomtrue這里幾個參數(shù)值得說一下-DgeneratePomtrue會順手生成一個最小 pom否則依賴進(jìn)私服后別人拉下來是殘缺的-Dversion建議帶個-local后綴一眼能看出這是手工裝進(jìn)去的包將來換正式版好排查。還有一種寫法是用scopesystem/scope加systemPath直接引本地文件我不推薦——打 fat jar 的時候極容易漏掉本地跑得好好的上線就 NoClassDefFoundError屬于典型的「本地玄學(xué)、線上血淚」。提示安裝完成后執(zhí)行一次mvn dependency:tree | grep -i aspose確認(rèn)依賴真的進(jìn)來了比對著 pom 猜快得多。2.3 跑通第一張導(dǎo)出圖最小可運(yùn)行示例先別急著封裝工具類寫一個能一次跑通的 main把整條鏈路走一遍后面所有參數(shù)都在這個骨架上加。import com.aspose.cells.*; public class ExcelToPng { public static void main(String[] args) throws Exception { // 1. 授權(quán)必須在第一次 new Workbook 之前加載否則本進(jìn)程內(nèi)會一直按評估版渲染 License license new License(); try { license.setLicense(license.xml); } catch (Exception e) { // 不要靜默吞掉否則線上只能看到水印看不到真實(shí)原因 System.err.println(授權(quán)加載失敗輸出將帶評估水印: e.getMessage()); } // 2. 加載工作簿 Workbook wb new Workbook(input.xlsx); // 3. 渲染參數(shù) ImageOrPrintOptions opts new ImageOrPrintOptions(); opts.setImageType(ImageType.PNG); // 輸出格式 opts.setHorizontalResolution(200); // 橫向 DPI opts.setVerticalResolution(200); // 縱向 DPI opts.setOnePagePerSheet(true); // 整表壓到一頁大表慎用見 3.2 opts.setOnlyArea(true); // 只導(dǎo)出打印區(qū)域 opts.setPrintingPage(PrintingPageType.IGNORE_BLANK); // 跳過空白頁 // 4. 逐 sheet 逐頁輸出 WorksheetCollection sheets wb.getWorksheets(); for (int i 0; i sheets.getCount(); i) { Worksheet ws sheets.get(i); if (ws.getName().startsWith(_)) { continue; // 約定下劃線開頭的是隱藏的輔助頁 } SheetRender render new SheetRender(ws, opts); for (int page 0; page render.getPageCount(); page) { String path String.format(out/%s_p%d.png, ws.getName(), page); render.toImage(page, path); } } } }這段代碼有幾個設(shè)計(jì)點(diǎn)值得展開。第一授權(quán)加載放在最前面是因?yàn)殇秩編煸陬惓跏蓟A段就會讀取授權(quán)狀態(tài)一旦帶著評估狀態(tài)建過 Workbook該 JVM 進(jìn)程內(nèi)后續(xù)再設(shè)置也可能不生效只能重啟。第二用SheetRender而不是工作簿級一次性導(dǎo)出好處是能按 sheet 跳過隱藏頁、能拿到單頁的 pageCount 做分頁控制輸出文件名也好定位問題。第三setOnlyArea(true)依賴工作表里已經(jīng)設(shè)好的打印區(qū)域沒設(shè)的話等于導(dǎo)出整個已用區(qū)域邊界行為和你的預(yù)期可能差一截下一章會專門講。跑通之后你會得到out/下一批 PNG文件名帶 sheet 名和頁碼出問題能直接對上是哪一頁。這一步別省很多人一上來就封裝成 Spring Bean結(jié)果連原始異常長什么樣都沒見過。3. 導(dǎo)出參數(shù)逐項(xiàng)拆成圖質(zhì)量全押在這六個開關(guān)上同樣一個 xlsx參數(shù)調(diào)不對出來的圖可能是右邊切掉一列、中間糊成一片、或者整張圖只有 3 像素高。這一章把真正影響成圖的幾個開關(guān)拆開講。3.1 分辨率與像素格式200 DPI 是不是萬能解DPI 決定的是「一英寸排多少像素」而 Excel 的頁面單位是英寸所以輸出位圖的像素尺寸約等于紙張寬英寸× DPI。A4 橫向 11.69 英寸200 DPI 下就是 2338 像素寬。這個尺寸丟給前端做縮略圖綽綽有余做 OCR 識別也基本夠用。常見的三檔取值我一般這么定場景建議 DPI單頁像素A4 橫向備注列表頁縮略圖96-1201123-1403 px體積小加載快詳情頁預(yù)覽150-2001754-2338 px中文小字號仍可辨認(rèn)打印/OCR/留檔3003508 px體積大注意內(nèi)存格式選擇上PNG 適合帶透明背景和線條清晰的表格JPEG 體積小但表格細(xì)線容易出鋸齒一般不用。要透明背景就opts.setTransparent(true)但只有 PNG 支持設(shè)成 JPEG 會直接報錯或者被忽略。這里有個容易被忽略的賬位圖內(nèi)存是「寬 × 高 × 4 字節(jié)」。300 DPI 的 A4 單頁就是 3508 × 2480 × 4 ≈ 34 MB如果你把一張 50 頁的表壓成一頁尺寸會翻幾十倍JVM 直接原地起飛。先算清楚這個乘法比事后加-Xmx有用得多。ImageOrPrintOptions hiRes new ImageOrPrintOptions(); hiRes.setImageType(ImageType.PNG); hiRes.setHorizontalResolution(96); // 縮略圖檔 hiRes.setVerticalResolution(96); hiRes.setTransparent(false); // 白底更適合直接鋪在頁面上上面這段是我給列表頁用的配置96 DPI 出來的圖大概 100-300 KB七牛或 OSS 上存幾十萬張也不心疼。詳情頁再單獨(dú)走一套 200 DPI 的渲染兩套參數(shù)分開配置別想著一個配置吃所有場景。3.2 打印區(qū)域、縮放與分頁整表壓一頁的代價setOnePagePerSheet(true)是最容易被濫用的一個開關(guān)。它的語義是「把這個 sheet 的所有內(nèi)容縮放到一頁里」聽起來很美好實(shí)際效果是一張 500 行的表會被壓成高度只有幾個像素的細(xì)條字全糊在一起。正確的姿勢是先定打印區(qū)域再定縮放策略// 只渲染 A1 到 H40 這塊區(qū)域避免把整個已用區(qū)域拖進(jìn)來 ws.getPageSetup().setPrintArea(A1:H40); // 橫向鋪滿 1 頁寬縱向允許多頁保持字號可讀 ws.getPageSetup().setOrientation(PageOrientationType.LANDSCAPE); ws.getPageSetup().setFitToPagesWide(1); ws.getPageSetup().setFitToPagesTall(0); // 0 表示縱向不限制參數(shù)含義setFitToPagesWide(1)是橫向壓到 1 頁setFitToPagesTall(0)表示縱向按內(nèi)容自然分頁不強(qiáng)行壓。這樣出來的效果是橫向不失真、縱向該分幾頁分幾頁SheetRender.getPageCount()會如實(shí)返回頁數(shù)。如果你確實(shí)要整表一頁比如給文件列表出個總覽縮略圖那就得加保護(hù)先判斷已用區(qū)域的行數(shù)超過閾值我一般設(shè) 200 行就退回分頁模式或者把 DPI 降到 72。另外setPrintingPage(PrintingPageType.IGNORE_BLANK)建議常開很多模板表尾部有一堆空白頁不去掉會白白多渲染幾張全白圖還占存儲。參數(shù)作用建議值副作用setOnePagePerSheet整表壓一頁小表 true大表 false大表嚴(yán)重壓縮變形setOnlyArea只導(dǎo)出打印區(qū)域true未設(shè)打印區(qū)域時行為等同整表setPrintingPage空白頁處理IGNORE_BLANK無setFitToPagesWide橫向頁數(shù)1列太多時字會很小3.3 列寬、合并單元格與右側(cè)截?cái)唷赣疫吷僖涣小故沁@類渲染里最常見的一類反饋成因有三個得分開看。第一個是打印區(qū)域沒覆蓋到最后一列。setOnlyArea(true)生效的前提是工作表里有明確的打印區(qū)域如果你的模板是從別的系統(tǒng)導(dǎo)出的打印區(qū)域可能還停留在 A1:F30而你新加了 G、H 兩列那截?cái)嗍潜厝坏摹=鉀Q辦法是導(dǎo)出前動態(tài)重設(shè)// 先讓列寬按內(nèi)容自適應(yīng)再按已用區(qū)域重新圈定打印區(qū)域 ws.autoFitColumns(); Cells cells ws.getCells(); int maxRow cells.getMaxDataRow(); // 最后一個有數(shù)據(jù)的行 int maxCol cells.getMaxDataColumn(); // 最后一個有數(shù)據(jù)的列 if (maxRow 0 maxCol 0) { String area CellsHelper.cellIndexToName(0, 0) : CellsHelper.cellIndexToName(maxRow, maxCol); ws.getPageSetup().setPrintArea(area); }這段邏輯的順序很關(guān)鍵必須先autoFitColumns()再取getMaxDataColumn()否則列寬還是模板里的舊值。CellsHelper.cellIndexToName是把「行號、列號」翻譯成「A1、H40」這種字符串的工具方法比手寫列號字母轉(zhuǎn)換靠譜。第二個成因是列寬在容器里被算「寬」了。xlsx 里存的列寬單位是「標(biāo)準(zhǔn)字符數(shù)」渲染時需要按字體度量換算成像素容器里少了字體文件就會回退到默認(rèn)字體寬度整體偏移最后一列就被擠出打印區(qū)域。這個問題的表現(xiàn)是「本地正常、服務(wù)器截?cái)唷购?5.1 的中文方框是同一個根因處理方式也一樣。第三個是合并單元格跨頁被切斷。橫向合并的單元格如果正好壓在分頁線上渲染時會被拆成兩半。這種情況沒法靠參數(shù)修只能調(diào)整打印區(qū)域或者在模板階段就把合并范圍收在單頁內(nèi)。我一般的做法是模板評審階段就用 200 DPI 導(dǎo)一次圖人眼看一遍有沒有跨頁斷裂比上線后被業(yè)務(wù)反饋強(qiáng)。4. 水印是怎么冒出來的評估版限制的判定與正規(guī)消除路徑這是整個包里最敏感也最容易被問的一環(huán)。先把話說清楚渲染庫在未授權(quán)狀態(tài)下導(dǎo)出圖片時加一條評估字樣這是產(chǎn)品本身的授權(quán)機(jī)制不是 bug也不是配置項(xiàng)。所謂「去水印」正規(guī)路徑只有一條——拿到授權(quán)并正確加載繞過授權(quán)去改 jar 包里的字符串屬于侵權(quán)而且這類包通常帶完整性校驗(yàn)改了大概率啟動報錯或者行為異常得不償失。4.1 三種典型水印形態(tài)與快速判定評估狀態(tài)的輸出有幾個穩(wěn)定特征可以先做判定再決定后續(xù)動作形態(tài)出現(xiàn)位置是否授權(quán)問題處置方式底部紅色評估字樣每頁圖片最下方是加載授權(quán)文件頁面中部斜向半透明大字覆蓋內(nèi)容區(qū)是加載授權(quán)文件每頁右上角小角標(biāo)固定偏移位置是加載授權(quán)文件內(nèi)容整體偏移、底部被裁位置不定否打印區(qū)域/頁邊距問題判定方法很樸素用同一份 xlsx在加載授權(quán)前后各導(dǎo)一次圖肉眼比對。如果兩次圖的差異只在上述固定位置那就是授權(quán)如果差異在內(nèi)容區(qū)那是渲染參數(shù)問題別往授權(quán)上賴。還有一種情況要單獨(dú)提導(dǎo)出的 PDF 干凈、導(dǎo)出的 PNG 有水印。這種一般是不同輸出路徑走了不同的編碼實(shí)現(xiàn)個別版本上確實(shí)存在差異但結(jié)論不變——沒授權(quán)就是沒授權(quán)換個格式只是換個地方出現(xiàn)。4.2 License 的加載時機(jī)為什么本地沒事、上線就有這是最高頻的一個坑本地 IDE 里跑得好好的打成 jar 部署到服務(wù)器就帶水印日志里干干凈凈什么異常都沒有。原因基本都是這一行// 錯誤寫法jar 包內(nèi)運(yùn)行時相對路徑指向的是工作目錄不是 classpath license.setLicense(license.xml);打成可執(zhí)行 jar 之后license.xml被壓在 jar 內(nèi)部FileInputStream那種相對路徑解析指向的是進(jìn)程工作目錄文件根本不存在拋出的異常又被catch吞了于是靜默降級成評估版。正確寫法是從 classpath 讀流import com.aspose.cells.License; import java.io.InputStream; public final class LicenseHolder { private static volatile boolean loaded false; public static synchronized void init() { if (loaded) { return; } // 從 classpath 根目錄讀取jar 內(nèi) jar 外都能命中 try (InputStream in LicenseHolder.class.getResourceAsStream(/license.xml)) { if (in null) { throw new IllegalStateException(license.xml 不在 classpath 根目錄); } new License().setLicense(in); loaded true; } catch (Exception e) { // 拋出去讓啟動失敗而不是帶著水印跑一整年 throw new IllegalStateException(授權(quán)加載失敗, e); } } }幾個細(xì)節(jié)try-with-resources保證流關(guān)閉setLicense只讀取一次讀完后流可以關(guān)volatile加synchronized是防并發(fā)重復(fù)初始化雖然重復(fù)調(diào)用本身無害但能省掉一次無謂的 IO最關(guān)鍵的是異常必須往外拋——授權(quán)失敗的靜默降級是所有「線上帶水印」問題的共同源頭寧可讓應(yīng)用起不來。Spring 項(xiàng)目里在PostConstruct或ApplicationRunner里調(diào)用一次LicenseHolder.init()就夠了注意要在任何一次產(chǎn)出圖片的調(diào)用之前完成。熱部署場景比如某些開發(fā)容器會重建 classloader下靜態(tài)標(biāo)記會被重置這種情況老老實(shí)實(shí)每次用之前判一下loaded為 false 就重新初始化。還有一點(diǎn)授權(quán)文件不要放進(jìn)src/main/resources/public這類會被靜態(tài)資源映射出去的目錄也不要打進(jìn)前端產(chǎn)物。它就應(yīng)該是 classpath 根目錄下一個安靜的文件。4.3 不引入商業(yè)庫時的替代渲染鏈路如果項(xiàng)目預(yù)算卡死、或者只是內(nèi)部小工具那就別硬上商業(yè)庫了走第二條鏈路用無頭辦公套件轉(zhuǎn) PDF 再轉(zhuǎn)圖效果同樣能打。# 第一步xlsx - pdf--headless 保證無 GUI 環(huán)境下可運(yùn)行 soffice --headless \ --convert-to pdf \ --outdir ./pdf \ ./input.xlsx # 第二步pdf 每頁 - png-r 控制 DPI與前面的分辨率概念一致 pdftoppm -png -r 200 ./pdf/input.pdf ./out/sheet參數(shù)說明--headless必須加否則在沒有顯示服務(wù)的容器里會直接退出--convert-to pdf后面可以跟過濾器參數(shù)微調(diào)紙張和邊距一般默認(rèn)就夠pdftoppm的-r是 DPI-png指定輸出格式輸出文件會自動帶上頁碼后綴。這條鏈路的問題也得提前知道單次轉(zhuǎn)換有 2-5 秒的進(jìn)程冷啟動并發(fā)高了 CPU 直接打滿所以必須用固定大小的進(jìn)程池去跑別在請求線程里同步調(diào)容器鏡像要裝中文字體否則一樣是方框轉(zhuǎn)換結(jié)果受套件版本影響同一個文件在不同版本上邊距可能差幾個像素做像素比對時要留容差。5. 五條線上翻車記錄Excel 截圖服務(wù)的排查清單下面這五條都是我在實(shí)際服務(wù)里遇到過的現(xiàn)象、原因、解決按順序?qū)懹龅筋愃瓢Y狀可以直接對號入座。5.1 中文全部變成方框現(xiàn)象本地 Windows 開發(fā)機(jī)出圖完全正常部署到 Linux 容器后所有中文變成豆腐塊方框數(shù)字和英文不受影響。原因渲染時按字體名去系統(tǒng)里找字體容器基礎(chǔ)鏡像只帶了西文字體找不到中文字體就回退到內(nèi)置默認(rèn)字體默認(rèn)字體沒有中文字形。這不是編碼問題別去查 UTF-8。解決兩步走。鏡像里裝字體同時代碼里顯式指定字體目錄雙保險。# Dockerfile 片段裝 fontconfig 并把字體拷進(jìn)系統(tǒng)目錄 apt-get update apt-get install -y fontconfig mkdir -p /usr/share/fonts/truetype/app cp ./fonts/*.ttf /usr/share/fonts/truetype/app/ fc-cache -fv// 啟動時注冊字體目錄第二個參數(shù) true 表示遞歸掃描子目錄 FontConfigs.setFontFolder(/usr/share/fonts/truetype/app, true); // 如果知道模板里指定的具體字體名再釘一層默認(rèn)字體防止回退 FontConfigs.setDefaultFontName(Microsoft YaHei);fc-cache -fv這步別省緩存不刷新的話字體裝了也可能找不到。驗(yàn)證方法是先跑一次導(dǎo)出看圖里的中文實(shí)在不確定就臨時在容器里執(zhí)行fc-list | grep -i cjk能看到字體名就說明裝進(jìn)去了。5.2 大表導(dǎo)出直接 OOM現(xiàn)象一張二十萬行的對賬表導(dǎo)出時堆內(nèi)存幾分鐘內(nèi)漲到上限進(jìn)程 OOM 退出偶爾不退出但產(chǎn)出的 PNG 是一張純白圖。原因開啟了setOnePagePerSheet(true)等于要求把整表壓進(jìn)一張位圖。按 3.1 的算法寬高都會被拉到極限單張位圖占用幾個 GB 是常態(tài)堆里放不下就直接掛。純白圖的成因是位圖尺寸超過了底層圖像庫的上限返回了一張空圖但沒拋異常。解決三重限制一起上。行數(shù)超閾值就強(qiáng)制分頁、限制最大像素尺寸、降 DPI。// 行數(shù)保護(hù)超過閾值不走「整表一頁」 int maxRow ws.getCells().getMaxDataRow(); boolean tooLarge maxRow 200; opts.setOnePagePerSheet(!tooLarge); if (tooLarge) { opts.setHorizontalResolution(96); // 大表降 DPI 省內(nèi)存 opts.setVerticalResolution(96); }另外導(dǎo)出前后打一行已用區(qū)域尺寸的日志出問題時第一眼就能看出是不是尺寸失控比事后 dump 堆???。5.3 并發(fā)下偶發(fā)空白圖或花屏現(xiàn)象單線程跑一百次全對用線程池壓到 8 并發(fā)偶爾出現(xiàn)空白 PNG或者圖片下半截是花的。原因Workbook和SheetRender都不是線程安全的多個線程共享同一個實(shí)例內(nèi)部狀態(tài)互相踩另一個常見原因是輸出文件名沖突兩個任務(wù)寫同一個路徑后寫的截?cái)嗲耙粋€。解決一任務(wù)一實(shí)例輸出路徑帶唯一標(biāo)識。// 每個任務(wù)獨(dú)立加載不要緩存 Workbook 復(fù)用 Workbook wb new Workbook(inputPath); String outName String.format(out/%s_%s_p%d.png, UUID.randomUUID(), ws.getName(), page); render.toImage(page, outName);注意new Workbook(inputPath)這個動作本身開銷不大百毫秒級別為了省這點(diǎn)開銷去做實(shí)例池池化非線程安全的對象是給自己挖坑。真要優(yōu)化優(yōu)化的是線程池大小和單機(jī)并發(fā)數(shù)不是復(fù)用 Workbook。5.4 右邊界總少一列現(xiàn)象業(yè)務(wù)反饋「表格最后一列看不到」人工打開 xlsx 明明是完整的。原因三種可能按概率排——打印區(qū)域沒覆蓋到最后一列setOnlyArea(true)開著但打印區(qū)域是模板遺留值列寬自適應(yīng)沒跑導(dǎo)致最后一列被擠出頁面。解決按 3.3 的順序處理先autoFitColumns()再用getMaxDataColumn()重設(shè)打印區(qū)域最后才渲染。改完拿一張「列數(shù)剛好卡在邊界」的測試表跑一遍別用列數(shù)很寬的表驗(yàn)證——寬表會把問題掩蓋掉因?yàn)榭s放下最后一列總能擠進(jìn)去一點(diǎn)。5.5 水印只在服務(wù)器出現(xiàn)現(xiàn)象IDE 里跑出來干干凈凈打 jar 部署后每張圖底部都有紅字日志無異常。原因見 4.2授權(quán)文件用相對路徑讀、異常被吞。開發(fā)階段 IDE 的工作目錄是項(xiàng)目根目錄license.xml就在那兒所以能讀到打 jar 之后工作目錄變了文件在 jar 內(nèi)相對路徑失效。解決改成 classpath 讀流異常不吞并且在應(yīng)用啟動完成后打一行授權(quán)狀態(tài)日志。最省事的自檢是啟動時導(dǎo)一張 1x1 的測試圖檢查輸出文件尺寸和內(nèi)容區(qū)是否為空白——評估水印會占掉底部一條尺寸特征很明顯。6. 從能出圖到敢上線像素級校驗(yàn)與并發(fā)壓測的兩個抓手出圖這件事最怕的不是報錯是「不報錯但不對」。所以我習(xí)慣在上線前加一道自動驗(yàn)收用像素統(tǒng)計(jì)代替肉眼。6.1 用像素統(tǒng)計(jì)做自動驗(yàn)收思路很簡單把圖轉(zhuǎn)灰度統(tǒng)計(jì)接近白色245的像素占比再統(tǒng)計(jì)寬高比。全白圖的白占比接近 1.0被嚴(yán)重壓縮的圖寬高比會明顯偏離紙張比例。from PIL import Image import numpy as np def check_png(path, min_ratio0.02, max_ratio0.98): img Image.open(path).convert(L) arr np.array(img) h, w arr.shape ink_ratio float((arr 245).mean()) # 非白像素占比即「有內(nèi)容的比例」 aspect w / h problems [] if ink_ratio min_ratio: problems.append(f疑似空白圖 ink{ink_ratio:.4f}) if ink_ratio max_ratio: problems.append(f疑似花屏 ink{ink_ratio:.4f}) if not (0.6 aspect 1.8): problems.append(f寬高比異常 aspect{aspect:.2f}) return problems for p in [out/sheet1_p0.png, out/sheet1_p1.png]: print(p, check_png(p) or OK)閾值我給的是經(jīng)驗(yàn)值正常表格的非白像素占比一般在 3%-40% 之間低于 2% 基本可以判定為空白頁可能是空白頁沒過濾高于 98% 說明整張被填滿了通常是花屏或渲染溢出。寬高比同理A4 橫向約 1.41A4 縱向約 0.71超出 0.6-1.8 這個區(qū)間就該人工看一眼。這套檢查塞進(jìn) CI 很容易準(zhǔn)備三張固定測試表普通表、寬表、空表每次構(gòu)建跑一遍導(dǎo)出加校驗(yàn)任何一項(xiàng)失敗就攔住。比人工點(diǎn)開看可靠得多而且成本幾乎為零。6.2 線程池與內(nèi)存上限的配合并發(fā)這塊有個粗算公式單張圖內(nèi)存 ≈ 寬 × 高 × 4 字節(jié)再乘以同時在渲染的任務(wù)數(shù)就是瞬時峰值。假設(shè) 200 DPI 的 A4 橫向約 2338 × 1654 × 4 ≈ 15 MB8 并發(fā)就是 120 MB加上 Workbook 本身的內(nèi)存一般是文件體積的 5-15 倍一張 5 MB 的 xlsx 就是 25-75 MB。所以-Xmx1g跑 8 并發(fā)并不寬裕。我的經(jīng)驗(yàn)配比是-Xmx設(shè) 2g 的情況下固定線程池大小取 4 到 6單任務(wù)超時設(shè) 30 秒超時直接返回降級圖比如一張帶「預(yù)覽生成中」的靜態(tài)占位圖。線程池用固定大小而不是緩存池緩存池在流量尖峰時會瞬間拉起幾十個線程瞬間把堆打滿這類 OOM 的現(xiàn)場往往連堆棧都留不下來。從那以后我每次接這類截圖需求都會強(qiáng)制走一遍「授權(quán)自檢 三張測試表 像素校驗(yàn) 4 并發(fā)壓測」這四步哪怕項(xiàng)目再小也不跳。跳過哪一步后面就會在哪一步被業(yè)務(wù)找回來。這份 zip 里主要是 jar 包和兩個示例工程拿到后先按 2.2 的install:install-file裝進(jìn)本地倉庫跑通 2.3 的 main再按 4.2 把授權(quán)加載改對基本就能接進(jìn)自己的服務(wù)里了。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩无码操逼片| 久久9亚洲| www.色五月| 日本欧美韩国日产片片在线看免| 亚洲污一污二| 水滴偷拍| 欧美日韩另类在线播放| 国内精品伊人久久久久影院会| 国产精品视频精品一二| 麻豆久久久久久久久丝袜| 亚洲中文字幕av| 久久久9品一区二区三区| 欧洲乱码视频| 蜜桃久久一区二区| 亚洲另类欧美精品| 五月天黄色激情视频| 另类天堂| av东京热男人的天堂| 啊啊啊啊二区好大| 亚洲天堂久| 欧综合网| 青娱乐999| 日本午夜久久电影| 粉嫩AV输入| 风韵犹存大大大大香蕉| 国产精品区在线12p| 人妻aa| 中文字幕成人| 超碰97欧美日韩| 少妇久久久久久| 女同女同恋久久级三级| 色婷婷五月天| 少妇人妻在线| 尤物视频一区| 盗摄 精品 另类 一区| 久久久久久久久久久999| av2014 日韩在线中文字幕| 国产日韩久久| 狠狠爱综合网| 亚洲欧美综合网站| 91综合色噜噜| 97天天爽| 久久春色| 伊人AAA| 日本一久是| 亚洲天天操| 久久一级无码精品毛片6| 韩国一区二区精品亚洲| 亚州男人天堂| 久操大香蕉| 330dv亚洲成年视频网| 99re久久| 国产一级作爱毛片| 日日日骚女人精品| 中文字幕日韩专区精品系列 | 天天干夜夜| 午夜福利一区二区影院| 日本97久久久精品| 91精品国产91久久青草| 午夜情侣自拍网站| 在线啊啊啊| 成人麻豆av电影网站| 久久伊人五月天| 精品人妻一区二区免费蜜桃| 久操电影| 欧洲色色| 色五月AV| 亚洲少妇喷视频看| 亚洲蜜臀精品视频久久| 亚洲一欧洲中文字幕在线 | 在线啊啊啊| 精品人体无圣光凹凸| 96精品久久久久中文字幕| 国产精品美女| 97中文超碰| 啊啊啊慢点| 夜色AV无码手机在线影院| 六月色婷婷| 91欧美少妇| 户外裸露刺激视频第一区| 97频视在线| 青青草福利视频| 天美精品原创av片国产| 射 色综合| 96麻豆精品一区二区三区| 国模吧 一区二区三区| 学生妹天天看| 亚洲五码一区二区三区| 黄色交缠性感爆操91国产精品免费一区二区三区| 国产精品视频麻豆入口| 有码人妻系列| 亚洲欧美国产中文视频| 18岁禁 茉莉成人久久| 日本一区二区不卡| 亚洲熟妇无码一区二区三区| 一本色道久久综合精品婷婷| 国语人妻精彩刺激| 久久精品国产Aⅴ| 天天影视色香色欲| 操一操摸一摸| 亚州 综合 色图| 免费A片三p视频| 亚洲人在线成线成人| 亚洲福利影院一区久久| 69精品人人人人| 成人av影院在线观看| 特级大荫道BBwBBwBBW| 97欧美视频| 99re95| 91在线超高颜值国产| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲欧美激情在线视频| 97色操| 大香蕉丝袜一级片| 欧美 亚洲精品首页| 日韩美脚一区二区网站| 超碰国产精品无码| 亚州综合AⅤ| 国产熟女乱论| 成人国产二区三区在线,男女精品。| 日本人体九九九九九九| 男人天堂新| 天堂资源欧美| blacked精品一区国产| 色综合 加勒比| 中文字幕在线观看二区三区| 神马午夜久久| 日韩图区| 黄色欧美性爱视频| 校园春色五月天| 少妇与黑人高潮在线| 久久久久久日韩| 欧美草草高清日韩视频| 日本三级日本三级三级人妇四虎| 免费一级精品啪啪视频| 无码粉嫩白虎一线天b区| 嗯啊免费视频| 乱伦Av网| 欧美性高潮| 国产欧美亚洲精品a第2页| 欧美激情专区| 青青草字幕AV| 操逼视频亚洲| 97资源久久| 久操在97| 亚洲国产无码精品首页久久久| 蜜臀一区二区三区在线| 99999这里都精品| 91亚洲黑人| 久久精品店| 草久久久| 91Chinese在线| 久热热| 日韩美女高潮喷水视频| 日本三级久| 九九热久久99精品re| 四虎精品永久在线观看| 亚洲图片 激情小说| a v网站在线播放| 性色高清..……| 亚洲色图久久成人| 熟女乱伦二区| 久久日韩精品一区二区| 极品色综合| 1000午夜黄色| 成人网欧美风情| 五月婷婷综合网| 色官网色综合| 2025年A片视频精品| 免费国产| 欧美视频激情久久久久久| 亚洲中文字幕噜噜噜久久久| 丁香五月综合| 久久精品中文字幕无码l| 午夜噜噜噜| 久久国色天香香蕉| 午夜色婷婷| 在线国产福利网址导航| 春色91| 精品视频久久区| 亚洲成人久久美女| 天堂中文日本在线观看| 欧美国产精品| 蜜乳视频网站| 天天综合网网欲色| 欧美78P| 破处bbq| 99热导航| 大香蕉99热| 日本久久久久久久久| 国产免费永久精品无码| a级理论午夜日本| 国产第12页| 国产精品ww久久| 久久伊人东京热| 蜜桃精品视频一区二区三区| 欧美A√综合网| 久久超碰久| 九色视频91| www.91理论| 91综合站| 亚洲电影中字一区二区| 人人妻人人爽 97人人看碰人免费公开视频| 日本色日夜干| 久久久久九九九| 骚女天天综合网| 亚洲国产中文字幕| 天美传媒av一区二区| 久久视网78| 白丝jkav| 嗯,啊。舔我逼| 啊啊啊不要啊啊受不了了视频在线| 嗯嗯啊啊操死我| 97干com| 亚州精人品大香蕉| 日韩成人色图| 色爽爽文学| 中文字暮97| 婷婷五月天网| 日本人体九九九九九九| 按摩中文字幕| 美女久久久久久久| 怡红院怡春院| 好好的日:com久久九九| 天天舔天天日天天射| 91欧美性| 亚洲人妻久久久| 亚洲中字慕不卡| 成人国产二区三区在线,男女精品。| 国产AV天美传媒一区二区三区| 乱欲性色| 亚洲有薄码区久久在线一区| 久久老熟女| 99热在线播放| 日韩免费三级黄片电影| 激情综合二| 懂色AV蜜臀无码精品APP| 色色色99| 91亚洲不卡一区| 亚洲综合九九| 99热这里只有精| 熟女中出视频| 在线小视频| 精品一区二区2| 人妻熟妇一区二区三区| 精品日韩人妻精品一二三区| 操逼操网| 天天日日夜夜| 热久久精品| 一区二区三区成人 | 秋霞Av理论一级在线| 日韩在线地址一| 粉嫩粉嫩一区性色AV片| 婷婷亚洲天堂| 亚洲黄日韩无码专区| 少妇专区一二三四五| 夜夜夜夜爽| 久久99干一本高清| 日韩精品色呦呦| 亚洲欧洲日韩国产自在线| 精品-91人妻子系列| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 91九九九逼| 黄色污污污污污污网站| 91男人天堂网| 天美精品原创av片国产| 日韩一性一交一A片俄罗斯| 91强奸乱轮| 日本三级久| 天天舔天天日天天射| 国产精品伦理| 少妇无码av专区线| 2010男人的天堂| 成人在线视频一区| 999久久芭蕾| 日本不卡五区| 日韩人妻一区二区精品| 天天色怡春院| 亚洲av青草久久一区二区| 波多野42部无码喷潮在线观看| 一区三区啪啪| 超碰97色色| 在线洲亚线| 麻豆视频一区二区| 日韩三级天堂在线观看| 久久这里精品国产99丫e6| 久久久久久裸体| 国产精品另类一区大香蕉| 97ai亚洲| 久久久久久国产无码精品| 亚洲AV无码天美传媒一区| 亚州九九九精品视频| 超碰在线一区| 乱精品一区字幕二区| 韩国国产欧美情侣视频在线| 综合久久9| 人妻系列无码专区中文有码| 日韩钢筋无码高清啾啾啾| 偷拍亚洲情色| 欧美熟妇视频| 最新av在线| 国产精品久久久| 日韩激情中文字幕有码| 91国产美女丝袜足交精品视频 | 久久AV无码网址| 亚洲淫乱骚妇AV| 欧美日韩传媒| 色婷亚洲五月在线观看| 一二三四视频在线社区中文字幕| 欧洲黄色网| 伊人五月天| 伊人少妇久久久| 91综合网| 97公开久久| 中文有码9| 在线v中文字幕一区二区三区| 亚欧精品久久久久久久久久久| 老色鬼成人精品视频下载大在线观看| 国产一级内射无挡观看| 亚洲av总站| 91九色丰满高潮| 精品国产91av一区二区三区 | 蜜臀99久久国产| 国产精品不卡一区二区三区av| 亚洲一区日韩| 97欧美色| 国产精品麻豆视频网站| 国产女人9999| 久久久久久国产手机AV| 青草视频人妻在线观看| 成人av影院在线观看| 97视频网站在线观看| 国产精品一区二区三区免费视频| 防屏蔽在线视频| 少妇三p| 激情五月天网| 性欧美| 婷婷AV一区二区三区| 啊啊啊不要好疼视频| 午夜在线播放| 乱色视频中文字幕| 亚欧成人一级片在线播放| 色色色色网站| 青青草久草| 日本特黄f c2| 中出789在线视频| 午夜乱轮操逼视频免费看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产美女口爆吞精视频| 任我爽视频在线观看| 97超碰欧美| 熟女字幕| 东京太热男人的天堂久久久| 亚洲成人碰碰| 性色亚洲| 欧美性暴力猛交XXXX | 国产精品经典一卡久久久 | 精品视频专区| 中文字幕aⅴ在线视频| 激情小说亚洲视频| 亚洲,日韩,欧美,成人播放| 思思热影视| 亚洲精品一区二区三区新线路| 精品黄色电影| 嗯嗯啊啊亚欧精品| 曰本人妻人人澡人人夹| 国产夫妻性生活视频| 啪一啪免费视频| 国产精品伦理| 久久久久久人妻| 97亚洲精品| 1区2区3区中文字幕日韩| 欧美 日韩 亚洲 春色| 男人的天堂日韩| 可以免费观看的av| 欧美色图第一页| 高树玛利亚无码流出| 中文字幕一区二区免费在线| 破处bbq| 九九色影院| 十八禁啪啪视频| 中文字幕人乱码中文字的预防方法| 久久精品日韩| 91亚洲最新在线| 97资源超碰| 成人av影院在线观看| 日韩天天综合| 九热大香蕉| 懂色AV蜜臀无码精品APP| 熟女熟妇一区二区三四区| 久久色一区| 天天做日日做| 欧美色图亚洲激情| 玖日综合网| 精品v1区| 色99视频| 国岛片视频| 色臀av| 欧美一区二区三区成人性生活| www.91色综合| 国产A v无码专区| 天美传媒婬乱在| 国产第二页| 熟女丰满人妻一区| 国产福利影视| 一区二区免费电影久久| 国产精品乱码久久久久久久久| 麻豆影音天美视频| 六月丁香网| 国产欧美成人第一页在线观看| 91精品91久久久久77777| 亚洲男人的天堂V| 成人精品在线| 伊人黄色视频免费观看| 久久国产逼| 国产日本顶级一区二区三区| 亚洲www91| 精品丰满人妻一区二区三区免费观| 国产精品无码久久久久2028| 一区二区中文| 欧美洲精品一级| 中国黑人三级片网站上区| 人人摸人人叼| 中文字幕AV乱伦| 国产三级片在线观看| 自拍视频大全亚洲专媒视频/一区二区三区| 日韩成人网址| 91c色| 欧美A片中文字幕| 1区2区3区视频| 超碰 欧美| 久久久久久久久久久久九| 超碰色中文| 亚洲一区深夜| 蜜桃av综合网发布| 亚洲性爱免费电影| 9国产超碰| 91制服丝袜中文字幕| 欧亚揄拍偷拍精品视频| 老熟妇综合| 国产精品视频白浆免费| 亚洲欧洲网站免费观看| 国产福利视频精品视频| 久久国产在线一区二区| 一区二区三区国产在线播放 | 91熟女网| 久久久免费高清中文视频| 97精品中文字幕| 91在线免费观看处女| 加勒比在线视频| 天天日天天色| 婷婷爱五月| 狠狠综合| 国人欧美精品一区二区| 人人看人人爰人人操| 成人26uuu| 九九九九热| 好属操| 99re在线| 波多野结衣之双飞调教在线播放| 久艹视频在线| 后入人妻无码| 久久国产精品m码| av橘色网站| 日韩91网| 97亚洲精品超碰| 无码78| 国内伊人久久久久久网站视频| 精品九九九九九九| 东京热一区二区中文字幕| 东京热一区二区中文字幕| 久久啊啊啊| 国产精品一区二区三区四区五区| 亚洲乱妇p22| 欧美组图日韩亚洲中文字幕| 亚洲97成人在线观看| 欧美的性爱网站免费| 日韩av在线精品观看| 高清国产性猛交xxxx乱大交| AV网站高清无码在线观看| 首页中文字幕中文字幕免费| 丁香五月婷婷基地| 中文字幕日本久久| 欧美亚洲综合色| 美女自卫慰黄网站免费| 亚洲少妇喷视频看| 歐美一級亂黃99在綫精品| 一级黄碟在线观看| 青青草中日韩在线| 国产成人五月天丁香花| 久久人妻| 成人免费性爱视视| 精品人妻中文字幕4399| 亚洲性爱无码乱伦av| 国产精品久久久久久久黄无码| 精品黑人一区二区| 欧美成人四级在线播放| 伊人女女资源在线观看| 大香樵伊人网| 99色日| 蜜区区视频79| 91美女在线观看| 久久性生大片免费观看性| 国产黄色影片在线观看| 欧美成人黄网色网站| 337p大胆噜噜噜噜噜91Av| 欧美性爱1080p| 4399成人黄A片| 偷拍综合亚洲| 美欧色综合| 国产一区二区免费福利片| 婷婷中文网| 精品人人| 欧美青青草视频| 日本成人在线不卡一区二区三区 | 中文字幕激情小说| 国产黄色在线播放观看| 五月天婷婷基地| 亚洲蜜臀懂色| 国产欧洲精品亚洲午夜拍精品| 蜜臀99久久国产| 国产精品嫩草久久久久| 裸体美女国产免费久久久网站| 欧美一区二区三区大综合| 97资源站久久| 久久无码一区二区二三区性色| 激情看片网站| 乱码熟妇人妻久久久| 1204av韩国| 亚洲成人ab| 久久伊人最新网址视频| 欧美黄色片AAAAA| 97亚洲资源| 78m成人视线| 色综合天天| 欧洲免费一区二| 日韩无码服务区| 人妻二区| 九九毛片这里只有精品| 日本高清视频在线观看黄已三辽| 日本不卡一区| 爱射综合| 操老熟女AV| 香港澳门日本三级网站| 91碰碰| 曰韩少妇无码| 亚洲图片日本AⅤ欧美在线| 久操综合在线| 亚洲在钱| 国语精品内射在线观看| 中文字幕国产精品1区| 天堂av最新电影网| 激情国产乱伦Av| 97综合在线观看| 中文字幕青青草| 黑人操一区二区| 久久一二三四不卡 | 激情综合久久| 国产成人啪一区二区| 偷拍三区| 中文字幕日韩精品一区二区三区| 天天色图| 小草精彩毛片| 好属操| 亚洲成人综合在线| 伊人嫩草| 日本一本道A级黄色毛片试看60分钟| 色情亚洲日本成人| 在线亚洲欧美| 91粉嫩萝控精品福利网站_精品影音先锋国| 国产精品电影推荐| 人人操肉肉| 九月丁香婷婷| 秋霞 色色| 欧美九九爱| 中文字幕后石码四区五区| 色噜噜婷婷| 欧美天天在线| 96久久精品一二三区色欲| 另类专区加勒比| 特级丰满少妇一级AAAA爱毛片| 9999亚洲精品| 亚洲国产成人福利在线观看| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 老熟女乱伦一区| 艾草av| 色香AV| 婷婷三区| 国产精品露脸在线观看| 亚洲永久AV无码精品秋霞| 欧美呦呦性爱| 天天激色| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久久久久白虎| 亚洲黑丝在线| 男人天堂网址| 麻豆AV96熟妇人妻| 777AV电影| 在线观看午夜婷婷久久久久清性观看| 国产99久久99热这里只有精品15| 日本中文字幕一区| 精品国产一级久久| 精品免费囯产一区二区三区| 国产后入精品| 亚洲**2021在线观看| 97色插| 亚洲一卡二卡在线免费| 97精品97| 成人日本视频人妻在线| 人妻天天爽夜夜爽2| ?亚洲伊人伊成久久人综合网| av2014 日韩在线中文字幕| 欧美久热| 精品对白久久不卡| 欧州激情视频在线一区二区| 久久久久亚洲AV无码专区少妇| 成人一级二级| 麻豆这里只有精品| 欧美高清91| 美国美女AV在线| 极品综合| 婷婷美人网| 亚洲乱熟女一区二区三区大香蕉| 午夜毛片亚洲精品片国产久久久| 国产盗摄美女如厕大神作品在线观看| 国产欧美日韩一区二区三区| 91综合国产精品| 国产乱伦一二三区| 大学生美女口爆| 香蕉免费一区二区三区不读| 欧美一级色| 黄色免费一级在线毛片| 中文字幕精品专区搜索结果91| 五月婷在线| 手机看片日韩人妻| 東南亚性呦成人伦理资源在线视频| 欧美久久草熟女| 欧美aaaaaaa| 91亚洲综合在线| 久久久久久久久久久999| 天天看,天天做| 欧美九九九九九| 久噜噜| 国产AV高清AV无码| 久久99国产精品| 殴洲老熟女| 五月丁香狠狠爱| 伊人黄色片| 男人综合网| 狠狠色一区二区中文字幕| wwwss在线观看| av三级电影在线播放| 久湿久久| 色老汉色| 亚洲精品99| 日本性爰一道本| 九月伊人中文字幕| 国产久久久久影院老熟女| 荡小穴在线观看| 九月激情婷婷| 四虎免费在线观看| 日韩天天本| 99色婷婷| 国产白嫩漂亮KTV在线| 亚洲精品久久久久毛片A片拉屎| 久久久中文版| 口爆综合网| 综合久久欧美| 天天做日日做| 国产成人亚洲精品无| 日本二区不卡| 男人的天堂在线| 国产精品麻豆成人AV艾秋| 欧美一区二区三区四区综合| 男人久久天堂| 欧美最婬乱婬爆婬牲视频| 免费久久9999| 91+欧美| 嗯嗯啊中文字幕| 亚洲色诱惑| 99久久久er直播网址| 久久黄片国产一区二区| 欧美色网| 天天噜| 激情文学小说一区二区| 超碰在线97国产| 女人爽到高潮久久久| 97碰在线视频| 天天精品| 一区二区三区四区免费视频| 亚洲字幕一区二区| 最新国内自拍av免费| 搡老女人老熟女91| 91美女视频直播| av天天在线| 一区久久久二区| 亚洲男人bt天堂| 97色碰| 99操视频| 日韩欧美中文| 性爱乱伦视频免费| 国产久久免费精品视频| 国产精品不卡一区二区三区av| 试看60秒 爽| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 2018天天干在线视频| 久久一二三四| 人人人干干人人干| 高清国产精品福利网站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 一个国产在线综合网站| 国产精品久久久久久久久久梁医生| 日韩三级伊人| 欧洲特黄毛片免费看欧洲毛片| 亚洲欲色| 97色碰| 啊啊啊在线观看| 国内一区二区免费| 国产品精品自在在线午夜免费| 中文字幕一区二区视频在线观看| 日本阿v天堂在线观看| 亚洲图片欧美色图| 强奸抽插av| av在线播放国产一区| 一区二区三区亚洲| 国产极品粉嫩馒头一线天av| 尹人免费观看视频在线| 高清无码在线播放网站| 亚洲国产精品成人综合| av网站在线观看了| 艹比视频国产精品| 国产不卡免费在线视频| 国产亚洲精品第一最新| 婷婷久久久| 亚洲 欧美都市激情| 嗯嗯啊啊操死我| 91在线丝袜视频| 精品视频久久区| 91痴汉| 男人的天堂一区| 国产高清自拍视频| 精品国产Av无码久久久亚洲| 欧美激情另类一区二区| 亚洲制服欧美另类内射| 色婷婷六月| 校园春色欧美色图| 免费人人搞97| 日韩丨制服丨中文|在线| 欧洲一区二区| 啪啪视频免费在线观看| 日韩人妻一二三区视频| 久久久久久AV无码免费网站| 欧亚综合一卡二卡中文字幕| wwe 天天干.com| 18岁禁 茉莉成人久久| 久久 久久国内精品亚洲| 欧美—性—交—色| 欧美啪啪色吧在线| 第四色奇米影视777| 91天堂色男人的天堂| 青青草日韩无码| 亚洲美女30b| 神马久久69| 四虎影视国产精品| 国产高清成人免费视频| 最新无码国产| 午夜黄色免费在线观看| 色婷婷五月综合激情中文字幕| 超碰亚洲97| 色老牛| 少妇淫妇久久久久久久| 桃花色综合影院| 操逼逼中文字幕| 天天综合网~69| 校园春色制服丝袜中文字亚洲 | 欧美日本天堂| 国产精选视频| 五月丁香六月综合缴清无码| 牛黄色久午久| 久久超碰、| 夜夜春夜夜操| 国产精品一区二区手机看片| 探花一区二区三| 看日韩美女二区三区免费操逼视频| 一区二区 电影 亚洲| 神马九九九| 亚洲国产成人精品久久久国产成人一区二区 | 曰韩精品视频一区二区| 五月天激情小说| 日本男人插女人的逼黄色| 91岛国动作片| 人人操人人操草草| 国产精品久久久视频| 欧色性第一页| 色欲天天综合久久久无码网中文| 欧美一级黄片视频在线| 人妻激情另类| 久9爱精品| 一区不卡在线观看av| 性色av婷婷久久一区二区点复制| 蜜臀人妻少妇久久在线观看| 青青草大香蕉视频| 国产精品无码av| 久久人妻办公室视频| 日韩丨制服丨中文|在线| 俞拍久久国应视频| 国产亚洲禁久一区二区| 久久久性爱视频| 天天肏天天干| 一区在线观看中文字幕| 韩国国产欧美情侣视频在线| 操逼操逼操| 无码99| 91激情国产| 国产一在线观看| 69超碰综合| 日日骚av| 操逼不卡中文字幕| 超碰99热中文字幕| 亚洲成人激情小说视频| 国产刺激视频| 97欧美资源| 91久久九九精品国产综合| 亚洲综合小说另类图欧美视频激情小说色五月天 | 一区二区 韩日AV| 毛片99-全集电影手机免费观看完整-B029AV| 精品久久无码午夜福利| 超碰99在线观看| 男人的天堂在线| 国产91影院| 欧洲天天在线| 97超碰大| 日韩成人精品中文字幕| 9久9久9久9久视频网站| 综合久久六月久久婷婷| 女人的天堂大香蕉网| 伊人网免费视频| 亚洲aw毛茸茸在线| 精品九九| 亚洲熟妇丝袜在线观看| 91精品老女人| 99国内精品| 大香蕉人妻久久| 亚洲欧美中文日韩视频中国语| 超碰97欧美日韩| 国产黄色视频久久| yiren97| 日韩免费福利在线观看| 大香蕉碰| 日日躁夜夜躁狠狠躁超爽| 欧美操人| 麻豆成人影音在线| 日本人体九九九九九九| 青青草国产欧美非洲黑人| 六月色色| 超碰天天去日穴| 99久在线精品99re8热| 99热国产精品| 国产精品一区二区黄片| 加勒比久久av| 人人插人人搞人人操| 91视频综合在线| 一区三区啪啪| 午夜精品久久久99热蜜桃的功能特点| 黄色一级视| 中文字幕欧美精品亚洲日韩蜜臀| 激情久久av一区av二区av| 色偷偷人人玩人人舔人人操人人摸人人爽| 操逼操逼逼操操逼91| 久草成人影片| 五月婷在线| 欧美姓爱综合网| 欧美日韩高潮喷水91| 91狠狠综| 青青草在线成人视频| 白丝被操91| 亚洲有码第一页| 天天肏夜夜肏| 91第一页| 亚洲AO在线| 日逼视频日本| 国产精品白丝AV| 一本一道人妻久久一区二区三区| 国产一级舔足在线观看| 一个人在线看的黄色电影网站| 51久久夜色精品国产麻豆| 成人精品视频| 国产男人又猛又粗又爽| 欧美日韩中文字幕不卡| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | AV99热18这里只有精品| 亚洲色图亚洲无码强奸乱伦| 欧美色另类| 日本一区三级韩国| 99色热国产视频精品| 清纯唯美第一页| 免费农村成人少妇人妻Aa一区二区视频 | 国产精品无码av嫩草| 亚洲另类色综合网站| 农村妇女一级二级三级视频| 中文字幕美女91| 久久99草| 大奶啊啊好爽 | 婷婷丁香五月综合| 日本大香蕉综合网红本杳社区| 伊人婷婷五月天| 啊啊啊啊免费视频| 天天日天天舔东京热| 另类TS人妖一区二区三区| 超碰色美女| 欧美日韩淫加| 国产肏逼网站| 亚洲欧美内射| 亚洲综合情色| 日韩精品 视频一区二区| 日本大香蕉综合网红本杳社区| 日日日啊啊啊| 亚洲一区二区性爱电影| TS人妖另类精品视频系列| 亚欧洲一区二区视频| www.91色综合| 欧美日韩国产高清在线一二三区| 91色插| 97精品国产精品免费观看| 伊人久久88国产女| 亚洲色图欧美色图日韩色图| 2017天天拍大香蕉| 色偷偷人人玩人人舔人人操人人摸人人爽| 蜜桃视频精品一区二区| 人人操,操人人| WWW.操逼.COM| 蜜桃天美传媒AV一区二区三区| 狠狠色一区二区中文字幕| 韩日精品四区| 久久免费精品视频免一| 被男人吃奶很爽的毛片| 久9精品| 情色大香蕉| www.男人天堂| 亚洲情色一区综合| 婷婷色五月激情| 国产成人99久久亚洲综合| 色99999| 99操逼| 久久视频,这里只有精品| 97人人中文网| 综合久草| 激情av| 熟女人妇一区二区三区| 日韩欧美午夜一区二区| 麻豆色99999| 公司1区2区3区精产精| 日本999精品视频| 蜜臀久久久久久999| 国产精品午夜高潮呻吟久久av| 午夜乱轮操逼视频免费看| 欧美91在线| 91性网| 天天影视综合色| 99日免费视频中文字幕| 欧美激情色婷婷花野真衣一区二区| www久久国产精品| 免费国产| 99爱爱| www.高清无码诱惑一区.com| 91女人的网站| 久久9 9 9精品| 91国产精品在线看| 五月天久久久| 亚洲AV成人无码一区二区三区在线观看 | AV色五月| 欧美一品道| 超碰久久网| 青青草精品| 97露脸精品丝袜| 国产黄色动态精品| 毛片视频白嫩| 四虎影库国产精品免费| 超碰在线974| 亚洲综合97中文网| 很很干很很操| 尹人大香蕉视频在线| 丁香五月激情五月| 九九热精品视频在线观看| 蜜乳AV一区二区三区四| 国产精品久久久久无码AV会牛| jizzjizz欧美| 中文字幕123| 另类一区| 99综合网| 天天综合网~69| 婷婷四五区| 99re6国产精品99re在线| 日韩超碰精品综合| 欧美白嫩女HD| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 日本一久是| 久久视频,这里只有精品 | 肏逼福利网站| 色哟哟综合| 国产无码三级视频在线观看| 亚洲图片激情综合另类| 95自拍视频在线观看| 污污汅18禁网站在线永久免费观看 | 婷婷综合五月| 精品国产乱码久久久久久久久1 | 色五月综合网| 五月丁香在线| 熟女啪啪视频| 欧美性,亚州色| 欧美91久久久久| com 首页 18岁 禁区 女优 免费 精选 同城 | 日本新免费二区三区| 日韩中文字幕av在线播放| 欧美国产成人在线| 超碰是碰在线观看| 97碰久久| 51国产午夜精品视频| 中文字幕一区二区三区高清| 日本女优在线视频福利| 天天做天天爱| 蜜臀在线免费观看在线免费观看| 躁躁日曰躁2020| 国产精品久久久久999| 日韩欧美偷拍美女视频| 欧美激情亚洲| 放黄片放3级黄片没穿衣服| 激情五月综合开心五月| 国产AV激情无码久久无码 | 丁香婷婷五月| 精品成人亚洲午夜电影| 国产亚洲精品av一区| 亚洲经典啪啪| 久久侵犯人妻爽爽爽| 欧美性爱一区| 东京热大香焦| 成人国产二区三区在线,男女精品。| 亚洲欧美成人网站AAA| 老熟妇一区二区三区…| 亚乱色| 亚洲男人的天堂亚洲| 91+欧美| 在线啊啊啊| 久久无码精品| 十八禁的黄污污免费网站| 久碰视频| 制服少妇欧美| 久久九操在线观看| 中文字幕三四区| 日韩乱伦影音先锋| 99热免费| 玖玖爱综合网| 91香蕉国产尤物视频| 亚欧成人中文字幕一区| 亚洲欲色9532548967一区| 欧美激情亚洲情色| 激情小说亚洲色图| 色成人Www精品永久观看| 亚洲夜色在线| 人妻喷水| 成人精品久久久午夜福利| 黄色电影观看久久9| a在线观看| 伊人一区二区三区| 日韩精品午夜操呦呦不卡影院| 中文字幕高清精品一区| 超碰AV在线| 亚洲Av噜噜一区二区三区妖精| 精品欧美乱码久| 亚洲欧美一区二区网址| 女人爽到高潮潮喷18禁网站 | 国产探花日韩援交| 伊人五月天| 少妇精品久久久八区九区| 亚洲国产美女久久久久| 国产又爽又黄| 久久久专区| 日本影视久久免费| 亚洲一卡2卡3卡4卡乱码网站 | 91oumei| 欧美最大综合网| 久久精品 六十路 熟女 欧美| 五月婷婷爱六月丁香色| 日韩啪啪啪视频| 99re99在线视频| 操逼免费视频无码国产| 亚洲精品久久久久久久久豆丁网| 亚洲有薄码区久久在线一区| 蜜乳成人AV| 激激五月| 美女9118禁| 国产av美女被艹的乱叫| 国产精品视频播放| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 亚洲视频,小说| 精品视频在线观看| 亚洲成人在线播放| 亚洲AV在线资源| wwwxxx日本爽| 熟女在线视频| 91A欧美电影网站| 思思热免费视频观看| 亚洲无限观看| 香蕉久久AⅤ...| 红桃视频高潮| 精品人妻中文字幕高清| 欧美日韩m| 熟女少妇视频| 国产18精品亚洲精品| 四虎视频在线观看| 国产精品久久久久久久久久梁医生| 亚洲人妻一区二区三区| 国产97av| 大香蕉啪啪啪| 午夜福利 成人 91| 欧美v亚洲v日韩v最新在线二区| 亚洲av热热色| 久久性爱视频免费看| 天天干天天操天天拍| 日韩射图| 大香蕉九九| 97欧美资源| 欧美日韩性爱精品| 麻豆天美在线| 欧美在线干| 色97欧美| 久久精品国产精品亚洲艾通辽熟妇 | 青青伊人这里只有精品| 狠狠亚洲| 国产亚洲日韩欧| 婷婷另类小说| 秋霞一级A片黄色视频| 亚洲中文字幕乱码无码一区二区| A 天堂| 91美乳| 免费黄色片。| 亚州欧美总和| 黄片com.| 69丨亚洲丨精品丨入口免费播放| 亚洲一区二区三区AV无码| 麻豆a'v电影| 久久久精品视频免费观看| 大香蕉手机在线| 99无码视频| 97网色| 婷婷五月天影院| 中国人高清www色视频免费| 欧美黄片欧美黄片xxx| 婷婷视频在线免费观看| 91黑丝操| 岛国AB视频| 亚洲操操操无码| 五月丁香影院| 超碰碰97资源站| 麻豆区99999| 囯戸精品高潮呻吟旡码| 日本超碰97日韩精品人妻| 国产成人精品日本视频| 亚洲欧美激情小说| 无码又爽又硬又激情免费视频 |