Unreadable content error after generating word from template
Posted: Mon May 17, 2021 5:17 pm
Hi
I am trying to generate word from template with docx4j, but I am getting error/warning when open word document as '' Word found unreadable content in .docx. Do you want to recover the contents of this document? If you trust the source of this document, click Yes", after replacing content through docx4j.
Error is only coming in particular case when converting html content from internet that contain some image. Below is the html content that I have used:
I have used Java 8 and below library of docx4j:
I have used below code to replace html content in word:
I am trying to generate word from template with docx4j, but I am getting error/warning when open word document as '' Word found unreadable content in .docx. Do you want to recover the contents of this document? If you trust the source of this document, click Yes", after replacing content through docx4j.
Error is only coming in particular case when converting html content from internet that contain some image. Below is the html content that I have used:
- Code: Select all
<p style="margin-top:0.5em;margin-bottom:0.5em;color:#202122;font-family:sans-serif;font-size:14px;background-color:#ffffff;">ter the border was defined so to make the northern portion of the territory concerned part of the French mandated territory that became Lebanon, many Zionist geographers — and Israeli geographers in the state's early years — continued to speak of "The Upper Galilee" as being "the northern sub-area of the <a href="https://en.wikipedia.org/wiki/Galilee" title="Galilee" style="text-decoration-line:none;color:#0645ad;background:none;">Galilee</a> region of <a href="https://en.wikipedia.org/wiki/Israel" title="Israel" style="text-decoration-line:none;color:#0645ad;background:none;">Israel</a> and <a href="https://en.wikipedia.org/wiki/Lebanon" title="Lebanon" style="text-decoration-line:none;color:#0645ad;background:none;">Lebanon</a>".</p><p style="margin-top:0.5em;margin-bottom:0.5em;color:#202122;font-family:sans-serif;font-size:14px;background-color:#ffffff;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9QAAAC2CAYAAAA4AMVIAAAgAElEQVR4Ae3dd6skWRkH4P08/iEKgiAKCioqYkRRFBO6K45iTpgxK4piVtSRxd01oJjFiHF1XMOaxuwaUdlvINjyK/e91JTVt/tW1Q3n1jNw6ZnbVaeqn/Oe95y3q7rnqo0/BAgQIECAAAECBAgQIECAwJEFrjryHnYgQIAAAQIECBAgQIAAAQIENgpqQUCAAAECBAgQIECAAAECBCYIKKgnoNmFAAECBAgQIECAAAECBAgoqMUAAQIECBAgQIAAAQIECBCYIKCgnoBmFwIECBAgQIAAAQIECBAgoKAWAwQIECBAgAABAgQIECBAYIKAgnoCml0IECBAgAABAgQIECBAgICCWgwQIECAAAECBAgQIECAAIEJAgrqCWh2IUCAAAECBAgQIECAAAECCmoxQIAAAQIECBAgQIAAAQIEJggoqCeg2YUAAQIECBAgQIAAAQIECCioxQABAgQIECBAgAABAgQIEJggoKCegGYXAgQIECBAgAABAgQIECCgoBYDBAgQIECAAAECBAgQIEBggoCCegKaXQgQIECAAAECBAgQIECAgIJaDBAgQIAAAQIECBAgQIAAgQkCCuoJaHYhQIAAAQIECBAgQIAAAQIKajFAgAABAgQIECBAgAABAgQmCCioJ6DZhQABAgQIECBAgAABAgQIKKjFAAECBAgQIECAAAECBAgQmCCgoJ6AZhcCBAgQIECAAAECBAgQIKCgFgMECBAgQIAAAQIECBAgQGCCgIJ6AppdCBAgQIAAAQIECBAgQICAgloMECBAgAABAgQIECBAgACBCQIK6glodiFAgAABAgQIECBAgAABAgpqMUCAAAECBAgQIECAAAECBCYIKKgnoNmFAAECBAgQIECAAAECBAgoqMUAAQIECBAgQIAAAQIECBCYIKCgnoBmFwIECBAgQIAAAQIECBAgoKAWAwQIECBAgAABAgQIECBAYIKAgnoCml0IECBAgAABAgQIECBAgICCWgwQIECAAAECBAgQIECAAIEJAgrqCWh2IUCAAAECBAgQIECAAAECCmoxQIAAAQIECBAgQIAAAQIEJggoqCeg2YUAAQIECBAgQIAAAQIECCioxQABAgQIECBAgAABAgQIEJggoKCegGYXAgQIECBAgAABAgQIECCgoBYDBAgQIECAAAECBAgQIEBggoCCegKaXQgQIECAAAECBAgQIECAgIJaDBAgQIAAAQIECBAgQIAAgQkCCuoJaHYhQIAAAQIECBAgQIAAAQIKajFAgAABAgQIECBAgAABAgQmCCioJ6DZhQABAgQIECBAgAABAgQIKKjFAAECBAgQIECAAAECBAgQmCCgoJ6AZhcCBAgQIECAAAECBAgQIKCgFgMECBAgQIAAAQIECBAgQGCCwFW33HLLxg8DMSAGxIAYEANiQAyIATEgBsSAGDgLMTChrj21Xa765z//udn2k7Pa9pzfb3djw0YM/C8G5BBjwVgQA3NiQA4RP3Pix77iRw5pLwbSZynoW/qjoD7kDQWJuL1BqM/OVp+ZyM5Wfxgf+qO1GJBDxGxrMet8z1bMyiFnqz/2GR/pMwW1AtVVfTEgBm6LARNZexPZPpOdbfTrScWAHCLWTirWHOd8xpoc0l6/KqgVUgopMSAGejFgImtvIrOo1GdnKQbkEPF4luLRubQXj3JIm33mCnVvMS3xtBfE+kyfLRkDJjLxtGQ8aWt98SSHrK/PjXN9vmQMyCHtxVP6TEGtoHaFUgyIgdtiwETW3kS25EJGW/p/bgzIIWJobgzZf90xJIe01/8KaoWUQkoMiIFeDJjI2pvILD712VmKATlEPJ6leHQu7cWjHNJmn7lC3VtMSzztBbE+02dLxoCJTDwtGU/aWl88ySHr63PjXJ8vGQNySHvxlD5TUCuoXaEUA2LgthgwkbU3kS25kNGW/p8bA3KIGJobQ/ZfdwzJIe31v4JaIaWQEgNioBcDJrL2JjKLT312lmJADhGPZykenUt78SiHtNlnrlD3FtMST3tBrM/02ZIxYCITT0vGk7bWF09yyPr63DjX50vGgBzSXjylzxTUCmpXKMWAGLgtBkxk7U1kSy5ktKX/58aAHCKG5saQ/dcdQ3JIe/2voFZIKaTEgBjoxYCJrL2JzOJTn52lGJBDxONZikfn0l48yiFt9pkr1L3FtMTTXhDrM322ZAyYyMTTkvGkrfXFkxyyvj43zvX5kjEgh7QXT+kzBbWC2hVKMSAGbosBE1l7E9mSCxlt6f+5MSCHiKG5MWT/dceQHNJe/yuoFVIKKTEgBnoxYCJrbyKz+NRnZykG5BDxeJbi0bm0F49ySJt95gp1bzEt8bQXxPpMny0ZAyYy8bRkPGlrffEkh6yvz41zfb5kDMgh7cVT+kxB3Suof/nLX27e/OY3b173uteN/nzoQx/a/O1vf9t86Utf2tzudrfbPO1pT9v8+c9/nnWFL/v/5je/md3OkoNZW+0NZn22TJ/Nncgqh7zjHe/Y/PGPf5yVG3b1adpP7khO2rWt55eJD44cd8XAUjlk1zpk13nMfT5rk6xxstbJmiftXbp0aXOPe9xjkbXP2PmNHXNsu/zu4sWL3bm98pWvlP9669htXn7fTu6am0Om9PUf/vCHzdvf/vauBvr5z38+aUz9/e9/3/zud7/b/P73v9/84x//OGgj65SHPvShXe5IDplyfmd9HwX1IAnVZJEJZOynCuglC+qaFPJ41gPG+bWTkPXVtL6aO5FVDsnkkUnkOPshC8n+Yvc4j6XtafHEbX1uS+WQsTVIflfrkOOOrbHitvLbcZ3D2DG3vc5aOymo1zfGtsXEefn93BwyxeEzn/nM5va3v323pphaj2zLDwrq9OjZ+3PVYYGS0z3s+V3PVTDc+9733nzsYx/bfP7zn7/i55vf/OYm78Dsaucoz9ekMDWAj3Is25p4xMDhMbBUDlFQH+4sDvmc1xhYKoc86EEP2vzwhz/s3pjLgrR+hld/TtKx1kgKauP3JONubceam0OO6pW65sUvfvHBhcRrrrmmu335qO0cd3446vmc5PbpM7d8965SVzDsWgzXbZ11C3huuczfc7t4nvv2t7+9ede73nVwy+fNN9/c3UqRW7hyS8VPfvKT7naIr3zlK5snPvGJXRDnMc9//OMf31qwZ/tsk8e08apXvWrz7Gc/e/OFL3zhitsrcj5f+9rXDm5ff8973rP52c9+dkW7w7Ze9rKXdW199atf7drKLR95PZk4r7vuuv+7JT23c3z5y1/uBuEznvGMzYc//OHNn/70pyuOcZLB7Fgm+CViYO5Etm8O2WeM/vWvf918+tOfPvj4yac+9amDcZg88bCHPazLHc961rMO8sKYQW4Nzy3o+cmiPG8WZly/9a1v3fzqV786GLMZ08lf1157bdfeG9/4xu4NxZxHtTts64Ybbthk8k2+y0I/E3POOXkp+SketW895hySk7Lf61//+s33vve9K/JXbefRmG4xBk4qh8wdi1n8fe5zn9tknGddkXGfsdk3T57JczfddFP3+8pvuwrqfdrOcSoXpL33ve99m1//+tddbhreeVO5sPJK1j91MaKuUPc9cvtq1kW1Rsuxsj7JOuXChQubV7ziFd36pX9barbZtlbLc3UO8chPPx/neT8MloqBuTnkqOeR8XTf+95384hHPGLz6Ec/enOXu9ylq2PG2qlxlHX/C1/4wm6+z9jI2uHlL3/55k53utPmfve73+bVr351t+bIuBzWSNVuxl/m/6wDsh7ImiRjsJ7PY3JPxltyUdYr2Sb5IuuY/tqk2qqP7SafXL58+Yq2+u0u/XcF9SAJ1mSxq6Cu7WpSqduU8tmit73tbZs73/nO3ecFMll8//vf3+SKd//2rTvc4Q5dMq4Jof9cTQ5jnV3bP+95z7uizdymkcmw9klA9dvM33NOmWBqm21tZbsU/cNzzkCpq/N5zCRct4fUsTLAMpHWMTyaYFqLgbkTWeWGXTlk1xjNGMskUmOrHjPpZIKq273r93nMmB7zTh7K+dz//vfvCt3+Po961KO6RWz2q0m1/3z+3h/Xh7X11Kc+dfPSl770inNOTswbjHVe8clk2z/GMDfVth7ljxZj4KRyyJyxmAVu1hH9cZi/Z97PmqXcK88c5TPU+7Y9lgse8pCHbB74wAd251XHzJriOc95zhXnete73nXzuMc9rvtdrZnK48EPfnB3MSDrk1qjZbH/mMc85oo28nxyZhXVh63VduXj8vIoZy0RA3NzyFHP4frrr+/Gxnvf+95N/T1rlGE7GUePfOQjrxhHyRvJJd/5zne6z0j3c0qtg/o1UsZ92s24S92Seqi/T9YDOYcal/UR26x9hsdOHVJ1Seqb7NtvK3niu9/97v+9juHrWuLfCuotBfXYrVb5oH11XC2aK1lXsCRB3/GOd+wWrm95y1u6he9rX/va7h2bXLVJgGTR+u53v3uTd1CzX67sJADymAkhi+VtnVtFcCa9XB3Ou7nZL8fNZJErRNk3t4nl3ZwEf35S5A+3GbaV7fKubc4l26bdtJ93YROkefcq5572E7h5FyoL6LxjlHeJ8jqzbwbktvP3e5PNWY+BuRNZ5YaaSLa93l1jNM/f85737K6mJCckV2RMf/GLX+zGV35Xt2h98pOf7HJHthk7Xi00Mz4zxjPW867wwx/+8G7MfvSjH+32S377yEc+srnxxhu79vIRl+E2Y20lF9UbcNk+becOl6c//eld+zUxV55MPslrST7MsbJvFsE5r7Hz9zt5o6UYWCqH7FqHzBmL8fzGN76xyecmM8/nDrZ6MyyL4xTF2WZKQb1P21kzPP/5z+/yQ9YRGfs5jxe96EXd75KrqqBOTsqaJHkid9b95S9/6RbitXgeFtTZNuuwXG374Ac/2OXOrE/y+9wZk2Pn9WZxfre73a3LQTnnw9Zqu/Jx9vfDYKkYmJtDjnIeNS/XWPjxj3/cjbW82Z66p9rqj9laR6QmeMlLXtKN1awfvv71r2/ufve7b5785Cd3Yyz7Z56vY+QN9iqos23GcNUzufKdq84pgvvbVUGdbbNWSd7LY/5ddUlyQt74z34p7HPMFNK5Sl11W72O43pUUA+SYC2Gk8yHP/0Oru2GBXX26V/NSccl2SeRJ7Gnk4edWYVtHofPDf9d29YCNc9nEspi9LAFfBbfT3rSk64I0rG2ciUpt3rkVtK0m/YT5LlFql5/gjML+RTUua28zrEGYY5z2JsCtb1Hk89ZjIG5E1nlhsPG49jrHo7RaieLvuHHNWr/4WK3fj98rIV3TT71/Pvf//4uzx2We/KGWvLacNHab6tyQrbrt5U33vr7Vn7JbZuZnHMeyYlvetObuu1yrDo3j/JDqzGwVA7J2Bn+1Dwcm7Fxve9YHLP9xS9+sXnAAx5wxVpimGMqL9XaZ6ydsd8N2667YbKYztqh9klhnfVMXncW0v2r3blqVdvldeZjav38Uh75Xe7uyTbZvo49LBDqStw73/nObrvD1mr1ug/Lx3VuHuWuuTEwN4cc5fh5UzvFdI3pGnOpW+pNrbRX8/dwHPWPVeOk2qrnhgV1f/x+4hOfOBjXWQ/URcaqc6qg7r/RN6xLqv0U2Z/97GdHa606l+N6VFBvKahzC0JuO8rtR/Xz2Mc+dvOjH/2o6/hh0FRnJpH3b6tOxyUY0sl5Lu+Y5jNL/cK6Ctv+QnRbh49tW5NIfwGfq8aZUOrc8w5wbrPsT8ZjbQ1fV86jXlvtWwv/vAuVzyPVF7dlUOQd9f55bHsdfm/COasxMHciqzG0axzsGqMZd/lsdPJG8sdrXvOaKz7vHL/hYneb6ViOyLbDHJC8lPz0+Mc/vssdmTiTO3IOw4J6+PrGzqUmwtq3ivPnPve5B3kj+eMNb3hDd4x9cuC21+j3cspZiYGlckgWubkSlLm8frLIrDs5to3rfcZirFLUZpFa64RnPvOZ3cK6P7aHbVV+Gy6Yh/a72q528mZ9Fse1f/8NgeSPWn9kvdG/FT3bVz6p/FIew22rEHjCE57QXZGvNUvupsuV7Nr/sLXaPvm4XoNHuWhuDMzNIUc5fsZB5vj+G1Y1tvKmVb0xVb+r8TJ2jBrXw/xQ43hYR9S/+23VeM3FyVx5Hq4jsu2wvfwut4/nTYD8XH311d0bAP1aq3+M4/i7gnpLQd2fUMbgh0Ez1rn9/TK55BaIdHQCN4Hy29/+tptEhova/n7Dv49tW5NInXOuLGchnGNlsspEnCvKw9soxtoavq4cf/ja6nh5HWM/eSOiJvzh+fu3ieasx8DciazGUI3Hsde77xjNVdx8qU4WiBlrGcO5vbsmieFid+xY+V2N2eE5DXNATUj3ute9ukVmckd97rAm0W1tjZ3LcCKs443ljfzOx0Xkh20x3NLvTyKHHDau9xmLP/jBD7pbLXPxIEV1xnoe8+9+nhi2VfltuGDu988+bQ+vivX37x8zn5/OZyfHFt7D/LItN9V22/JObnWvnHrYWm1XPu6/Bn+Xy+bEwNwcsu+x8zHRmuPvc5/7HLy5lu9bSQ3R/yhWzd8Zn9va35YfttURY+N62EaN3/5xh+3lfDKG8zGW1D8Z6zn/fDFatt12vkv+XkF9QgV1dXY+h5N3SfuLxwrSPO7q3LFth5NIPmOUQEoRXe8sjQXfWFvDQM75DPetfw/fBd517p43wbQQA3MnshpD/UXp8HXvO0Zrv4y5fGQkV6r7E1x/4Vnbjj0Oc0Rt088B9Rmk4bd7DiezbW2Nnctw3/p3rrrVArbOxaP8cF5i4CRySKzmjMW8eZZ1SN3uvK294biu/HZYQb1P29XO8PbRupUz55Z8UeuN4UfMcr71kZVaaG/zqGMNr4Zvi7fkprG1Wm2/LR/X8x7lsrkxMDeH7Hv8fGwzYyvjbdtPfcdKzd/9W6+Hx6mxNswPNY6rgK5/D9cbaa8+KlY1TB23xnm2qf2rvf55ZPzm89m58ya1UL4nov/8cf1dQX0CBXXe8exfsa13Zis4alFbnxc4rLNr2zzWdsNJpIKvv2jNFwNk4uoH31hbY4NhLHDrFpG8q11Fe4I4n4Wqf9f5eTS5tBQDcyeyGkOHFdT7jNFcDfnWt751UHhmfOX2q/4YrsVuTXjbnIc5orbr54Aa58M3yupzhpWvtrVV55LXVu3X66x96/OR+dxk//bNfIyknyNrf49yR4sxcBI5JC5zxmKN/RSlZVzfg9LPXcNxXfltuGCuNvK4T9t1ZSwL3myf/JZ98/nHWuBXLsnaKIv9/vfTJF/UFyZWftnmUVe584Zk/yN5yXk//elPD17/YWu1ffJx38Df5a45MTA3h+xz7Iy5w76/JIVoxmd950nN3/koSq4E1zHy31zVHbeVH/pfkpztan3RX79UHZHCOeMr22WsZpznuPni0vxuuI7Y1l5qq/73N+Xja8kbyS/Z57h/FNQD5AqG/oQy1gm1XU0qY8GS/fJN3rmXP4n8BS94QXdbVd2OXcFS78ZkmwRuvpF77Jj5XU1U/QAZTiI1Keb20Lz7nM895BwSWP1gHmtr+LpyzLHXloGVL+dI0OeKewrrvPubzyPl3emaHLe9Dr8//sHNeJrx3ImsxtC2d3szOewzRjNuM77yvQv5/HQmneSI/FcxySvp37pCkyI4uSPfhjvW78McUdv0c0B/ck2+yPGTP5JH8lp2LVqHC+8cYzgR5hg5Zl5Xzjm3Wma/3GKevFhfhFjn53FaDHM7XbelcsjYd7nkqkveWMsdJdvG9T5jsa5MZexlzs636ybXZKz31z/Dtiq/1dpnLNb2bTvHTS7I60x7+UkxnXVEzqMK6rqFPL/LOeabwJM/qvDOOeY8tnnkuayzkj9rLZacmteZ21zzmnat1fbJx2MWfne6Y7FV/7k5ZJ/XXQVyvogwX9w33Cfzcb6guL44sD9/1zjKmM34zX9rl5yUfXIXXdUG+X+qc0FvrI6oj77VuM44zpjMv/tvng3XETnPYXv54tZ83LTWFRnfeV05z/xvJcPXdhz/VlAfc0GdAOzf059ASfDl/3muK7nD/2MxX9CzrbP7C+DaZjiJ5Jg33HDDwUI4x0uRPvwc0lhbY5PlMHDruBmM+cKiDJx6Xfn6/HqnqrbzaEJpKQbmTmQ1hjImxn4yOewzRnPrY67MZEKodrKYvOmmmw7yQ8Zgff4p4/C66647eK5vPswR9dwwB2SCe8pTnnJwvBS5H/jAB7p/71q0DhfeOcbYRJjXnqvemfjqdeXzWqf1zZxl4VGeWioGjjuHVDG7bVzvMxaz/sg6JOuDjMO8cZY36LIYnltQ79t2tssxK8clJyQ31BchVkGdfsk6Kl96mnPNOee/uKpvA96Vm7J/8k7+e7/kmso7OV6K+pxHnj9srbZPPl4qfrQjF83NIfvEUF2B7n/xWH+/jIl8Bjnjpb7fJGMl3+tSb7TnuaxLcjdd9s0+GVOVV3LhbVtBne3H6oicT/9K89g6YliX5Lj5r4n74zvnmFooz/Vf13H9XUE9KKiPCzrtJgAyAdb/7zg8VgIo2wx/P/XfOc5hx5va7nC/nPdJHGd4XP826RxHDJzERFbnvc8YzWSQCSm3SI5NDPldntuWV+pY+z5We9uOt287u7bLxHzY69q1v+eN/7MaAyeZQ+YaZM2RcZjxOLet4f77tp3ctc85VC6cs06qNnK8/H14zvl32t+2pqn9jzs/jp2X360n5531HLJr/s6YPsoYqTE3Z2zX+EhNsk8+qe2XelRQn2BBvVSnaWc9SVVfn3xfn/WJTEycfEwwZ36UGJBDxMtR4sW24mUYA3JIezGhoFZQj75DOxzc/t3e4NZn0/rMRDbNTbxxEwP/iwE5xFgwFsTAnBiQQ9qLHwW1glpBLQbEQC8GTGTtTWRzFi721d9Lx4AcIqaWjintrSum5JD2+ltB3VtIS1jtBbA+02dLx4CJTEwtHVPaW1dMySHr6m/jW38vHQNySHsxpaBWULs6KQbEQC8GTGTtTWRLL2a0JwbmxIAcIn7mxI99xY8c0l4MKKh7C2lJrL0A1mf6bOkYMJGJqaVjSnvriik5ZF39bXzr76VjQA5pL6YU1ApqVyfFgBjoxYCJrL2JbOnFjPbEwJwYkEPEz5z4sa/4kUPaiwEFdW8hLYm1F8D6TJ8tHQMmMjG1dExpb10xJYesq7+Nb/29dAzIIe3FlIJaQe3qpBgQA70YMJG1N5EtvZjRnhiYEwNyiPiZEz/2FT9ySHsxoKDuLaQlsfYCWJ/ps6VjwEQmppaOKe2tK6bkkHX1t/Gtv5eOATmkvZhSUCuoXZ0UA2KgFwMmsvYmsqUXM9oTA3NiQA4RP3Pix77iRw5pLwYU1L2FtCTWXgDrM322dAyYyMTU0jGlvXXFlByyrv42vvX30jEgh7QXUwpqBbWrk2JADPRiwETW3kS29GJGe2JgTgzIIeJnTvzYV/zIIe3FgIK6t5CWxNoLYH2mz5aOAROZmFo6prS3rpiSQ9bV38a3/l46BuSQ9mJKQa2gdnVSDIiBXgyYyNqbyJZezGhPDMyJATlE/MyJH/uKHzmkvRhQUPcW0pJYewGsz/TZ0jFgIhNTS8eU9tYVU3LIuvrb+NbfS8eAHNJeTCmoFdSuTooBMdCLARNZexPZ0osZ7YmBOTEgh4ifOfFjX/Ejh7QXA00W1DlpfwgQIECAAAECBAgQIECAwGkL3HLLLad9Ckc6/lVH2trGBAgQIECAAAECBAgQIEDgmAQU1McEq1kCBAgQIECAAAECBAgQON8CCurz3b9eHQECBAgQIECAAAECBAgck4CC+phgNUuAAAECBAgQIECAAAEC51tAQX2++9erI0CAAAECBAgQIECAAIFjElBQHxOsZgkQIECAAAECBAgQIEDgfAsoqM93/3p1BAgQIECAAAECBAgQIHBMAgrqY4LVLAECBAgQIECAAAECBAicbwEF9fnuX6+OAAECBAgQIECAAAECBI5JQEF9TLCaJUCAAAECBAgQIECAAIHzLaCgPt/969URIECAAAECBAgQIECAwDEJKKiPCVazBAgQIECAAAECBAgQIHC+BRTU57t/vToCBAgQIECAAAECBAgQOCYBBfUxwWqWAAECBAgQIECAAAEC51ng1ltv3fz73/+e/BKz77/+9a/Nf/7zn8ltnPaOCurT7gHHJ0CAAAECBAgQIECAQGMCly5d2ly4cGFz8eLFSUV1iunrr7++a+PGG29stqhWUDcWuE6XAAECBAgQIECAAAECpylw+fLlrhC++uqrN9dcc82Ri+oqprNv2khhnjZb/KOgbrHXnDMBAgQIECBAgAABAgROSWBYEB+lqB7bN1eq8/sW/yioW+w150yAAAECBAgQIECAAIFTFBgrjHfd/j22T8vFdPgV1KcYhA5NgAABAgQIECBAgACBVgWOUiAfZduWPBTULfWWcyVAgAABAgQIECBAgMAZEtinUN5nmzP0ko50KgrqI3HZmAABAgQIECBAgAABAgT6AocVzIc912+j1b8rqFvtOedNgAABAgQIECBAgACBMyIwVjhfe+21m/zUt3nnsfXPTA+5FdRDEf8mQIAAAQIECBAgQIAAgSMLDIvq/JdY9XMei+kAKaiPHCZ2IECAAAECBAgQIECAAIExgbGi+rwW03n9CuqxKPA7AgQIECBAgAABAgQIEDiygIL6yGQnusNVJ3o0ByNAgAABAgQIECBAgACBvQTGimm3fO9Fd2IbKahPjNqBCBAgQIAAAQIECBAgsJ/AsJjObd6+lGw/u5PcSkF9ktqORYAAAQIECBAgQIAAgR0CY8V0fZv3Yc/taLaJp32GuolucpIECBAgQIAAAQIECBA4ewL7FMxj21y8eHGT37f+R0Hdeg86fwIECBAgQIAAAQIECJyCwFihXFemh6cztu15KKoV1MOe9m8CBAgQIECAAAECBAgQOFRgrEDeVppqCO0AAATzSURBVExXQ2P7tF5UK6irdz0SIECAAAECBAgQIECAwE6BscJ4VzFdjY7t23JRraCunvVIgAABAgQIECBAgAABAjsFLl++vLlw4cIm/yVWvs1732K6Gh4W1Wnr5ptvrqebelRQN9VdTpYAAQIECBAgQIAAAQKnL3Dp0qWuqD5qMV1nXkV1ium01eofBXWrPee8CRAgQIAAAQIECBAgcIoCt95666xv6k5RnTZa/qOgbrn3nDsBAgQIECBAgAABAgQInJqAgvrU6B2YAAECBAgQIECAAAECBFoWUFC33HvOnQABAgQIECBAgAABAgROTUBBfWr0DkyAAAECBAgQIECAAAECLQsoqFvuPedOgAABAgQIECBAgAABAqcmoKA+NXoHJkCAAAECBAgQIECAAIGWBRTULfeecydAgAABAgQIECBAgACBUxNQUJ8avQMTIECAAAECBAgQIECAQMsCCuqWe8+5EyBAgAABAgQIECBAgMCpCSioT43egQkQIECAAAECBAgQIECgZQEFdcu959wJECBAgAABAgQIECBA4NQEFNSnRu/ABAgQIECAAAECBAgQINCygIK65d5z7gQIECBAgAABAgQIECBwagIK6lOjd2ACBAgQIECAAAECBAgQaFlAQd1y7zl3AgQIECBAgAABAgQIEDg1geYK6pywHwZiQAyIATEgBsSAGBADYkAMiAExcBZi4NSq+QkHvmrCPnYhQIAAAQIECBAgQIAAAQKrF1BQrz4EABAgQIAAAQIECBAgQIDAFAEF9RQ1+xAgQIAAAQIECBAgQIDA6gUU1KsPAQAECBAgQIAAAQIECBAgMEVAQT1FzT4ECBAgQIAAAQIECBAgsHoBBfXqQwAAAQIECBAgQIAAAQIECEwRUFBPUbMPAQIECBAgQIAAAQIECKxeQEG9+hAAQIAAAQIECBAgQIAAAQJTBBTUU9TsQ4AAAQIECBAgQIAAAQKrF1BQrz4EABAgQIAAAQIECBAgQIDAFAEF9RQ1+xAgQIAAAQIECBAgQIDA6gUU1KsPAQAECBAgQIAAAQIECBAgMEVAQT1FzT4ECBAgQIAAAQIECBAgsHoBBfXqQwAAAQIECBAgQIAAAQIECEwRUFBPUbMPAQIECBAgQIAAAQIECKxeQEG9+hAAQIAAAQIECBAgQIAAAQJTBBTUU9TsQ4AAAQIECBAgQIAAAQKrF1BQrz4EABAgQIAAAQIECBAgQIDAFAEF9RQ1+xAgQIAAAQIECBAgQIDA6gUU1KsPAQAECBAgQIAAAQIECBAgMEVAQT1FzT4ECBAgQIAAAQIECBAgsHoBBfXqQwAAAQIECBAgQIAAAQIECEwRUFBPUbMPAQIECBAgQIAAAQIECKxeQEG9+hAAQIAAAQIECBAgQIAAAQJTBBTUU9TsQ4AAAQIECBAgQIAAAQKrF1BQrz4EABAgQIAAAQIECBAgQIDAFAEF9RQ1+xAgQIAAAQIECBAgQIDA6gUU1KsPAQAECBAgQIAAAQIECBAgMEVAQT1FzT4ECBAgQIAAAQIECBAgsHoBBfXqQwAAAQIECBAgQIAAAQIECEwRUFBPUbMPAQIECBAgQIAAAQIECKxeQEG9+hAAQIAAAQIECBAgQIAAAQJTBBTUU9TsQ4AAAQIECBAgQIAAAQKrF1BQrz4EABAgQIAAAQIECBAgQIDAFIH/AobS96ud50fPAAAAAElFTkSuQmCC" /></p><p style="margin-top:0.5em;margin-bottom:0.5em;color:#202122;font-family:sans-serif;font-size:14px;background-color:#ffffff;">Under this definition, "The Upper Galilee" covers an area spreading over 1,500 km², about 700 in Israel and the rest in Lebanon. This included the highland region of <a href="https://en.wikipedia.org/wiki/Belad_Bechara" title="Belad Bechara" style="text-decoration-line:none;color:#0645ad;background:none;">Belad Bechara</a> in <a href="https://en.wikipedia.org/wiki/Jabal_Amel" title="Jabal Amel" style="text-decoration-line:none;color:#0645ad;background:none;">Jabal Amel</a> located in <a href="https://en.wikipedia.org/wiki/South_Lebanon" class="mw-redirect" title="South Lebanon" style="text-decoration-line:none;color:#0645ad;background:none;">South Lebanon</a>,<sup id="cite_ref-4" class="reference" style="line-height:1;unicode-bidi:isolate;white-space:nowrap;font-size:11.2px;"><a href="https://en.wikipedia.org/wiki/Upper_Galilee#cite_note-4" style="text-decoration-line:none;color:#0645ad;background:none;">[4]</a></sup> </p>
I have used Java 8 and below library of docx4j:
- Code: Select all
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.2.9</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>8.2.1</version>
</dependency>
I have used below code to replace html content in word:
- Code: Select all
public static void replaceCustomContent(WordprocessingMLPackage wordMLPackage, MainDocumentPart documentPart,
String customContentFieldName, String replacedValue) {
List<Object> textElements = getAllElementFromObject(documentPart, Text.class);
for (Object textElement : textElements) {
Text text = (Text) textElement;
if (text.getValue().contains(customContentFieldName)) {
try {
R run = (R) (text.getParent());
P p = (P) (run.getParent());
Tc tc = (Tc) p.getParent();
int cellIndex = tc.getContent().indexOf(p);
if (cellIndex != -1) {
tc.getContent().remove(cellIndex);
XHTMLImporter xHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
replacedValue = "<html><head></head><body>" + replacedValue + "</body></html>";
final Document document = Jsoup.parse(replacedValue);
document.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
document.outputSettings().escapeMode(EscapeMode.xhtml);
replacedValue = document.html();
List<Object> objects = xHTMLImporter.convert(replacedValue, null);
for (Object object : objects) {
tc.getContent().add(cellIndex, object);
cellIndex++;
}
}
} catch (Docx4JException e) {
log.error("Docx4j exception while converting template");
throw new ApiRuntimeException(TemplateServiceException.DOCX4J_TEMPLATE_CONERSION_EXCEPTION,
new Object[] {}, HttpStatus.INTERNAL_SERVER_ERROR.value(), e);
}
break;
}
}
}