diff --git a/CHANGELOG.md b/CHANGELOG.md
index 37353540..708cde87 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@ and this project adheres to
## [Unreleased]
+## Added
+
+- 🎨(frontend) better conversion editor to pdf #151
+
## [1.1.0] - 2024-07-15
## Added
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts
index 3c6d1c20..96184095 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts
@@ -67,6 +67,21 @@ test.describe('Doc Tools', () => {
await page.keyboard.press('Enter');
await page.keyboard.press('Enter');
await page.locator('.bn-block-outer').last().fill('Break');
+ await expect(page.getByText('Break')).toBeVisible();
+
+ // Center the text
+ await page.getByText('Break').dblclick();
+ await page.locator('button[data-test="alignTextCenter"]').click();
+
+ // Change the background color
+ await page.getByText('Break').dblclick();
+ await page.locator('button[data-test="colors"]').click();
+ await page.locator('button[data-test="background-color-brown"]').click();
+
+ // Change the text color
+ await page.getByText('Break').dblclick();
+ await page.locator('button[data-test="colors"]').click();
+ await page.locator('button[data-test="text-color-orange"]').click();
await page.getByLabel('Open the document options').click();
await page
@@ -82,7 +97,10 @@ test.describe('Doc Tools', () => {
.click();
// Empty paragraph should be replaced by a
- expect(body).toContain('
');
+ expect(body.match(/
/g)?.length).toBeGreaterThanOrEqual(2);
+ expect(body).toContain('style="color: orange;"');
+ expect(body).toContain('style="text-align: center;"');
+ expect(body).toContain('style="background-color: brown;"');
});
test('it updates the doc', async ({ page, browserName }) => {
diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalPDF.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalPDF.tsx
index 055b8ce5..eb4d9850 100644
--- a/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalPDF.tsx
+++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/ModalPDF.tsx
@@ -104,7 +104,7 @@ export const ModalPDF = ({ onClose, doc }: ModalPDFProps) => {
return;
}
- let body = await editor.blocksToHTMLLossy(editor.document);
+ let body = await editor.blocksToFullHTML(editor.document);
body = adaptBlockNoteHTML(body);
createPdf({
diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/utils.ts b/src/frontend/apps/impress/src/features/docs/doc-header/utils.ts
index c07ebf9d..8918bc00 100644
--- a/src/frontend/apps/impress/src/features/docs/doc-header/utils.ts
+++ b/src/frontend/apps/impress/src/features/docs/doc-header/utils.ts
@@ -11,5 +11,15 @@ export function downloadFile(blob: Blob, filename: string) {
}
export const adaptBlockNoteHTML = (html: string) => {
- return html.replaceAll('