We’re currently evaluating aspose.words for use in an ASP.NET application, but there’s a feature that appears to be supported that I just can’t get to work right. I’d like to be able to make a word document with multiple sections and then set the appropriate paper tray for each section, the idea being that when the document is opened in Word and printed, that each section will be pulled from the correct tray. The code that I’m using in a test document to do this is:
Dim word_doc As New Aspose.Words.Document()
Dim word_builder As New Aspose.Words.DocumentBuilder(word\_doc)
word_builder.Writeln("This is the first line, in section 0")
word_builder.InsertBreak(Aspose.Words.BreakType.SectionBreakNewPage)
word_builder.Writeln("this is the first line, in section 1")
word_doc.Sections(0).PageSetup.FirstPageTray = Aspose.Words.PaperTray.MiddleBin
word_doc.Sections(1).PageSetup.FirstPageTray = Aspose.Words.PaperTray.LowerBin
word_doc.Save("results.doc", Aspose.Words.SaveFormat.Doc, Aspose.Words.SaveType.OpenInBrowser, Response)
When this new document is downloaded to my browser and opened in Word (not inside of a browser, Word itself), I can identify each section, and I can tell that the paper tray setting in “Page Setup” has been changed from the default, but it’s always “Automatically Select”, no matter which aspose.words.papertray value I set it to. The document created in my example above, when printed, is all printed from the same tray, even though I’m setting one section to MiddleBin and one to LowerBin (my printer does have multiple trays, and I’ve tried UpperBin as well, with the same result)
The aspose.words values appear to match the Word defaults for bin placement:
Value:
Name:
0
wdPrinterDefaultBin
1
wdPrinterOnlyBin
1
wdPrinterUpperBin
2
wdPrinterLowerBin
3
wdPrinterMiddleBin
4
wdPrinterManualFeed
5
wdPrinterEnvelopeFeed
6
wdPrinterManualEnvelopeFeed
7
wdPrinterAutomaticSheetFeed
8
wdPrinterTractorFeed
9
wdPrinterSmallFormatBin
10
wdPrinterLargeFormatBin
11
wdPrinterLargeCapacityBin
14
wdPrinterPaperCassette
15
wdPrinterFormSource
These values don’t appear to be valid for any printer driver that I have available, yet I can’t find out how (or if) I can make an aspose.words.papertray setting that I can use with my printer. Any ideas? I have made a word macro that can set the paper tray for each section (the values for my printer’s trays are 259 and 260, apparently), but I’d really rather not have to depend on macros for this sort of thing. Any ideas?
Thank you for reporting the issue to us. Now that you were able to use a macro to set the paper tray properly, I think we’ll add a similar functionality; just to make sure, wouldn’t setting OtherPagesTray along with FirstPageTray help?
Thanks for the quick response - ordinarily, I would always be setting OtherPagesTray too - but it has the same issue as the FirstPageTray - setting one of the enum values in Aspose.Words.PaperTray winds up setting the other pages on Page Setup (as viewed from within Word) to "the same “Automatic Detection” as it does for FirstPageTray (and not “Tray 1”, etc). The setting is definitely taking effect, it’s just that I think that the printer driver’s not finding a value to match MiddleBin’s translated value (for MiddleBin, I’m guessing “3” (integer)) and it assumes that anything it doesn’t specifically know about should be “Automatic Detection”.
Sort of guesswork on my end, but it’s consistent with what’s happening, I think. The actual values to be used seem to be very printer-specific. In order to find my printer’s values, I had to use Word’s “record macro” and then go pick the trays from a the list within the dialog window, and then go look at the VBA code it produced: “.FirstPageTray = 259” - picking another model of printer in our office and making the macro again gave me a different value.
I have the same problem. I can’t set “PageSetup.FirstPageTray” and “PageSetup.OtherPagesTray” properties to 260 and 261. I don’t found any method to set this property with an integer.
Have you done something about request #3006 ? This feature is often requested by our customers. Is it possible to add an integer property in the next release ?