Чтобы создать Документ, следует обеспечить реализацию интерфейса Документа. API Службы печати Java обеспечивает удобную реализацию Документа под названием SimpleDoc. Приложение не обязано использовать реализацию SimpleDoc, но гарантировать соответствие Документом, любая реализация Документа должна наблюдать ту же самую необходимую семантику, которую реализует SimpleDoc, которые являются:
Каждый Документ implemenation должен реализовать все пять методов интерфейса Документа.
Реализация Документа должна позволить многократным потокам получать доступ к объекту Документа.
Каждый раз, когда метод Doc вызывают, он возвращает тот же самый объект. Это означает, что Вы не возвращаете новый поток. С тех пор есть только один входной поток может только быть один потребитель Документа.
Документ возвращает поток для службы если требующийся
Документ проверяет, соответствует ли тип данных разновидность документа
Атрибуты, возвращенные из getAttributes всегда, переопределяют тех, которых передают в методе печати.
Прежде, чем создать Документ, Вы должны загрузить свой документ из файла. Класс представления DocFlavor определяет, как Вы загружаете документ из файла. В этом случае классом представления является InputStream:
FileInputStream fis = new FileInputStream("java2dlogo.gif");
Как только Вы имеете поток, передаете его к SimpleDoc с DocFlavor и DocAttributeSet, ifi Вы имеют тот. Если у Вас нет DocAttributeSet, передайте в нуле вместо этого: