When Ravi first posted, the subject didn't say "PDF". At least that much is now clear
I have done some performance testing on the PDF output before. My testing was with multiple threads (1 document per thread), and my stats count the total number of pages across *all* threads.
On the fastest hardware I have, I got 40-60 pages per second. With slower hardware, you might get 2-15 pages per second.
What CPU / RAM are you using? Have you optimised your JVM memory with -XmX etc?
Note that I didn't get 40-60 pages per second from a single thread - I don't have that number. These are just indicative figures .. they'd vary based on what is in your document.
Speaking generally, the PDF output process has 2 steps:
(1) creating the XSL FO (which docx4j does, not FOP),
(2) creating the PDF from the XSL FO (which FOP does).
You need to work out which of these 2 steps is taking the most time, and determine whether the step can be sped up, or another approach needed.
If the problem is step 2, then see the FOP mailing list where there have been some recent posts about performance. If it came to it, you could try another FO processor.
A thought from left-field: does your output have page numbers and cross-references? If not, you may be able to split it into say 4 chunks, and process each concurrently, then join the resulting 4 PDFs into a single one again.