For my suggestion above to work, you need to save the form before viewing it in a Print Preview using the link above.
Assuming, the form is now saved to the library. You now need to create a data connection within your form to retrieve the data from the library where you saved the form. Retrieve the columns from the library that will give you the filename (Probably 'Title'). Also, check 'Include data for the active form only' as you are creating the data connection
For now, create a refresh button and add the necessary rules:
1. Query your form library data connection
2. Set MyFileNameField = concat(MyLibraryDataConnection.Title, ".xml")
Once the form is saved and you hit the refresh button in your form, the file name field should have something like 'shahripusForm.xml' or whatever. If so, you can then use this field in your link instead of DocumentName
One thing I should mention, I ended up reverting back to the built in Print Preview button because I had a problem the custom one. My problem was that if a user opened a previously saved form, made changes and then selected Print Preview without saving the form again, the print preview would not reflect the new changes. This was a deal breaker for me
Nevertheless, in workflows I still find the link useful if I wanted to point someone at the print preview instead of the form itself.
Now I need to get back to work! :)