PdfRenderingController.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package epson.print.service;
  2. import epson.print.EPImageList;
  3. import epson.print.pdf.AreaPdfRenderer;
  4. import epson.print.screen.PrintSetting;
  5. import java.util.concurrent.LinkedBlockingDeque;
  6. public class PdfRenderingController implements RenderingController {
  7. private LinkedBlockingDeque<Integer> mDeque;
  8. private PrintService mEpsonService;
  9. private boolean mIsLandscape;
  10. private String mOriginalFilename;
  11. private String mPassword;
  12. private String mPdfFilename;
  13. private PdfRenderThread mPdfRenderThread;
  14. private int[] mPrintRange;
  15. public void drawBeforeStartJob() {
  16. }
  17. public PdfRenderingController(PrintService printService, String str, String str2, String str3, boolean z, int[] iArr) {
  18. this.mEpsonService = printService;
  19. this.mPdfFilename = str;
  20. this.mOriginalFilename = str2 != null ? str2 : str;
  21. this.mPassword = str3;
  22. this.mIsLandscape = z;
  23. this.mPrintRange = iArr;
  24. }
  25. public void startDrawAfterStartJob(int i) {
  26. this.mDeque = new LinkedBlockingDeque<>();
  27. this.mPdfRenderThread = getPdfRenderThread(i);
  28. this.mPdfRenderThread.createEpImageList();
  29. this.mPdfRenderThread.start();
  30. }
  31. public EPImageList getImageList() {
  32. PdfRenderThread pdfRenderThread = this.mPdfRenderThread;
  33. if (pdfRenderThread != null) {
  34. return pdfRenderThread.getImageList();
  35. }
  36. throw new IllegalStateException("startDrawAfterStartJob() not called");
  37. }
  38. /* access modifiers changed from: package-private */
  39. @VisibleForTesting
  40. public PdfRenderThread getPdfRenderThread(int i) {
  41. return new PdfRenderThread(this.mEpsonService, new AreaPdfRenderer(), this.mPdfFilename, this.mOriginalFilename, this.mPassword, this.mIsLandscape, this.mDeque, this.mEpsonService.getLocalPrinterLayout1AreaSize(i), this.mPrintRange, i);
  42. }
  43. public void waitPage(int i, int i2) throws InterruptedException, LocalInterrupt {
  44. while (i < i2) {
  45. if (!this.mEpsonService.getCancelPrinting()) {
  46. int intValue = this.mDeque.takeFirst().intValue();
  47. if (i == intValue) {
  48. i++;
  49. } else {
  50. throw new RuntimeException("page = [" + i + "] que [" + intValue + "]");
  51. }
  52. } else {
  53. throw new LocalInterrupt();
  54. }
  55. }
  56. }
  57. public void interruptSubThreads() {
  58. PdfRenderThread pdfRenderThread = this.mPdfRenderThread;
  59. if (pdfRenderThread != null) {
  60. pdfRenderThread.interrupt();
  61. }
  62. }
  63. public void joinSubThread(long j) {
  64. PdfRenderThread pdfRenderThread = this.mPdfRenderThread;
  65. if (pdfRenderThread != null) {
  66. try {
  67. pdfRenderThread.join(j);
  68. } catch (InterruptedException unused) {
  69. }
  70. }
  71. }
  72. public PrintSetting.Kind getKind() {
  73. return getKindStatic();
  74. }
  75. public static PrintSetting.Kind getKindStatic() {
  76. return PrintSetting.Kind.document;
  77. }
  78. }