ABDALLALSWAITI commited on
Commit
b6d416c
·
verified ·
1 Parent(s): a7b614f

Update puppeteer_pdf.js

Browse files
Files changed (1) hide show
  1. puppeteer_pdf.js +3 -39
puppeteer_pdf.js CHANGED
@@ -96,7 +96,7 @@ async function convertToPDF() {
96
  document.head.appendChild(base);
97
  }, baseUrl);
98
 
99
- // Wait for images to load
100
  await page.evaluate(async () => {
101
  const selectors = Array.from(document.querySelectorAll("img"));
102
  await Promise.all([
@@ -112,48 +112,12 @@ async function convertToPDF() {
112
  ]);
113
  });
114
 
 
115
  await page.emulateMediaType('screen');
116
-
117
- // Remove any @media print rules
118
- await page.evaluate(() => {
119
- const styleSheets = Array.from(document.styleSheets);
120
- for (const styleSheet of styleSheets) {
121
- try {
122
- const rules = Array.from(styleSheet.cssRules || []);
123
- let rulesToDelete = [];
124
- for (let i = 0; i < rules.length; i++) {
125
- const rule = rules[i];
126
- if (rule instanceof CSSMediaRule && rule.media.mediaText.includes('print')) {
127
- rulesToDelete.push(i);
128
- }
129
- }
130
- for (let i = rulesToDelete.length - 1; i >= 0; i--) {
131
- styleSheet.deleteRule(rulesToDelete[i]);
132
- }
133
- } catch (e) {
134
- // Ignore CORS errors
135
- }
136
- }
137
- });
138
 
 
139
  await new Promise(resolve => setTimeout(resolve, 2000));
140
 
141
- // Adjust slide heights for proper page breaks
142
- await page.evaluate(() => {
143
- const coverPage = document.querySelector('.cover-page');
144
- if (coverPage) {
145
- coverPage.style.height = '100vh';
146
- coverPage.style.breakAfter = 'page';
147
- }
148
- const slides = document.querySelectorAll('.slide');
149
- slides.forEach(slide => {
150
- slide.style.height = 'calc(100vh - 40px)';
151
- slide.style.breakInside = 'avoid';
152
- slide.style.pageBreakInside = 'avoid';
153
- slide.style.breakAfter = 'page';
154
- });
155
- });
156
-
157
  // Generate PDF path
158
  const pdfPath = htmlFilePath.replace('.html', '.pdf');
159
 
 
96
  document.head.appendChild(base);
97
  }, baseUrl);
98
 
99
+ // Wait for images and fonts to load
100
  await page.evaluate(async () => {
101
  const selectors = Array.from(document.querySelectorAll("img"));
102
  await Promise.all([
 
112
  ]);
113
  });
114
 
115
+ // Emulate screen media (not print)
116
  await page.emulateMediaType('screen');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
 
118
+ // Additional wait for rendering
119
  await new Promise(resolve => setTimeout(resolve, 2000));
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  // Generate PDF path
122
  const pdfPath = htmlFilePath.replace('.html', '.pdf');
123