display-mode.spec.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. 'use strict'
  2. /* global describe, it, jsPDF, comparePdf, expect */
  3. /**
  4. * Standard spec tests
  5. *
  6. * These tests return the datauristring so that reference files can be generated.
  7. * We compare the exact output.
  8. */
  9. describe('Display modes', () => {
  10. it('should set zoom mode to full height', () => {
  11. const doc = jsPDF()
  12. doc.setDisplayMode('fullheight')
  13. doc.text(10, 10, 'This is a test')
  14. doc.output()
  15. comparePdf(doc.output(), 'zoom-full-height.pdf', 'pages')
  16. })
  17. it('should set zoom mode to full width', () => {
  18. const doc = jsPDF()
  19. doc.setDisplayMode('fullwidth')
  20. doc.text(10, 10, 'This is a test')
  21. doc.output()
  22. comparePdf(doc.output(), 'zoom-full-width.pdf', 'pages')
  23. })
  24. it('should set zoom mode to full page', () => {
  25. const doc = jsPDF('landscape')
  26. doc.setDisplayMode('fullpage')
  27. doc.text(10, 10, 'This is a test')
  28. doc.output()
  29. comparePdf(doc.output(), 'zoom-full-page.pdf', 'pages')
  30. })
  31. it('should set zoom mode to original', () => {
  32. const doc = jsPDF('landscape')
  33. doc.setDisplayMode('original')
  34. doc.text(10, 10, 'This is a test')
  35. doc.output()
  36. comparePdf(doc.output(), 'zoom-original.pdf', 'pages')
  37. })
  38. it('should set zoom mode to 2x', () => {
  39. const doc = jsPDF('landscape')
  40. doc.setDisplayMode(2)
  41. doc.text(20, 20, 'This is a test')
  42. doc.output()
  43. comparePdf(doc.output(), 'zoom-2x.pdf', 'pages')
  44. })
  45. it('should set zoom mode to 3x', () => {
  46. const doc = jsPDF('landscape')
  47. doc.setDisplayMode(3)
  48. doc.text(20, 20, 'This is a test')
  49. doc.output()
  50. comparePdf(doc.output(), 'zoom-3x.pdf', 'pages')
  51. })
  52. it('should set zoom mode to 3x', () => {
  53. const doc = jsPDF('landscape')
  54. doc.setDisplayMode('300%')
  55. doc.text(20, 20, 'This is a test')
  56. doc.output()
  57. comparePdf(doc.output(), 'zoom-3x.pdf', 'pages')
  58. })
  59. it('should display in continuous mode', () => {
  60. const doc = jsPDF()
  61. doc.text(10, 10, 'Page 1')
  62. doc.addPage()
  63. doc.text(10, 10, 'Page 2')
  64. doc.addPage()
  65. doc.text(10, 10, 'Page 3')
  66. doc.addPage()
  67. doc.text(10, 10, 'Page 4')
  68. doc.setDisplayMode(null, 'continuous')
  69. comparePdf(doc.output(), 'continuous.pdf', 'pages')
  70. })
  71. it('should display in single page mode', () => {
  72. const doc = jsPDF()
  73. doc.text(10, 10, 'Page 1')
  74. doc.addPage()
  75. doc.text(10, 10, 'Page 2')
  76. doc.addPage()
  77. doc.text(10, 10, 'Page 3')
  78. doc.addPage()
  79. doc.text(10, 10, 'Page 4')
  80. doc.setDisplayMode(null, 'single')
  81. comparePdf(doc.output(), 'single.pdf', 'pages')
  82. })
  83. it('should display in two column left mode', () => {
  84. const doc = jsPDF()
  85. doc.text(10, 10, 'Page 1')
  86. doc.addPage()
  87. doc.text(10, 10, 'Page 2')
  88. doc.addPage()
  89. doc.text(10, 10, 'Page 3')
  90. doc.addPage()
  91. doc.text(10, 10, 'Page 4')
  92. doc.setDisplayMode(null, 'twoleft')
  93. comparePdf(doc.output(), 'twoleft.pdf', 'pages')
  94. })
  95. it('should display in two column left mode with shorter syntax', () => {
  96. const doc = jsPDF()
  97. doc.text(10, 10, 'Page 1')
  98. doc.addPage()
  99. doc.text(10, 10, 'Page 2')
  100. doc.addPage()
  101. doc.text(10, 10, 'Page 3')
  102. doc.addPage()
  103. doc.text(10, 10, 'Page 4')
  104. doc.setDisplayMode(null, 'two')
  105. comparePdf(doc.output(), 'twoleft.pdf', 'pages')
  106. })
  107. it('should display in two column right mode', () => {
  108. const doc = jsPDF()
  109. doc.text(10, 10, 'Page 1')
  110. doc.addPage()
  111. doc.text(10, 10, 'Page 2')
  112. doc.addPage()
  113. doc.text(10, 10, 'Page 3')
  114. doc.addPage()
  115. doc.text(10, 10, 'Page 4')
  116. doc.setDisplayMode(null, 'tworight')
  117. comparePdf(doc.output(), 'tworight.pdf', 'pages')
  118. })
  119. it('should use outline display mode', () => {
  120. const doc = jsPDF()
  121. doc.text(10, 10, 'Page 1')
  122. doc.addPage()
  123. doc.text(10, 10, 'Page 2')
  124. doc.addPage()
  125. doc.text(10, 10, 'Page 3')
  126. doc.addPage()
  127. doc.text(10, 10, 'Page 4')
  128. doc.setDisplayMode(null, null, 'UseOutlines')
  129. comparePdf(doc.output(), 'outlines.pdf', 'pages')
  130. })
  131. it('should use thumbnail display mode', () => {
  132. const doc = jsPDF()
  133. doc.text(10, 10, 'Page 1')
  134. doc.addPage()
  135. doc.text(10, 10, 'Page 2')
  136. doc.addPage()
  137. doc.text(10, 10, 'Page 3')
  138. doc.addPage()
  139. doc.text(10, 10, 'Page 4')
  140. doc.setDisplayMode(null, null, 'UseThumbs')
  141. comparePdf(doc.output(), 'thumbs.pdf', 'pages')
  142. })
  143. it('should use fullscreen display mode', () => {
  144. const doc = jsPDF()
  145. doc.text(10, 10, 'Page 1')
  146. doc.addPage()
  147. doc.text(10, 10, 'Page 2')
  148. doc.addPage()
  149. doc.text(10, 10, 'Page 3')
  150. doc.addPage()
  151. doc.text(10, 10, 'Page 4')
  152. doc.setDisplayMode(null, null, 'FullScreen')
  153. comparePdf(doc.output(), 'fullscreen.pdf', 'pages')
  154. })
  155. it('should throw an error for invalid page modes', () => {
  156. const doc = jsPDF()
  157. expect(() => {
  158. doc.setDisplayMode(null, null, 'MadeUp')
  159. }).toThrow(new Error(`Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. "MadeUp" is not recognized.`))
  160. })
  161. })