KeepDocumentPartStreamOpen
Contenuti
[
Nascondere
]DocumentPartSavingArgs.KeepDocumentPartStreamOpen property
Specifica se Aspose.Words deve mantenere aperto il flusso o chiuderlo dopo aver salvato una parte del documento.
public bool KeepDocumentPartStreamOpen { get; set; }
Osservazioni
L’impostazione predefinita èfalso
e Aspose.Words chiuderà lo stream che hai fornito nel fileDocumentPartStream
proprietà dopo aver scritto una parte del documento al suo interno. SpecificareVERO
per mantenere aperto il flusso. Tieni presente che il flusso di output principale fornito nella chiamata aSave
Save
non verrà mai chiuso da Aspose.Words anche seKeepDocumentPartStreamOpen
è impostato perfalso
.
Esempi
Mostra come dividere un documento in parti e salvarle.
public void DocumentPartsFileNames()
{
Document doc = new Document(MyDir + "Rendering.docx");
string outFileName = "SavingCallback.DocumentPartsFileNames.html";
// Crea un oggetto "HtmlFixedSaveOptions", che possiamo passare al metodo "Save" del documento
// per modificare il modo in cui convertiamo il documento in HTML.
HtmlSaveOptions options = new HtmlSaveOptions();
// Se salviamo il documento normalmente, ci sarà un output HTML
// documento con tutto il contenuto del documento sorgente.
// Imposta la proprietà "DocumentSplitCriteria" su "DocumentSplitCriteria.SectionBreak" su
// salva il nostro documento in più file HTML: uno per ogni sezione.
options.DocumentSplitCriteria = DocumentSplitCriteria.SectionBreak;
// Assegna un callback personalizzato alla proprietà "DocumentPartSavingCallback" per modificare la logica di salvataggio della parte del documento.
options.DocumentPartSavingCallback = new SavedDocumentPartRename(outFileName, options.DocumentSplitCriteria);
// Se convertiamo un documento che contiene immagini in html, ci ritroveremo con un file html che collega a diverse immagini.
// Ogni immagine avrà la forma di un file nel file system locale.
// Esiste anche un callback che può personalizzare il nome e la posizione del file system di ciascuna immagine.
options.ImageSavingCallback = new SavedImageRename(outFileName);
doc.Save(ArtifactsDir + outFileName, options);
}
/// <summary>
/// Imposta nomi di file personalizzati per i documenti di output in cui l'operazione di salvataggio divide un documento.
/// </summary>
private class SavedDocumentPartRename : IDocumentPartSavingCallback
{
public SavedDocumentPartRename(string outFileName, DocumentSplitCriteria documentSplitCriteria)
{
mOutFileName = outFileName;
mDocumentSplitCriteria = documentSplitCriteria;
}
void IDocumentPartSavingCallback.DocumentPartSaving(DocumentPartSavingArgs args)
{
// Possiamo accedere all'intero documento sorgente tramite la proprietà "Document".
Assert.True(args.Document.OriginalFileName.EndsWith("Rendering.docx"));
string partType = string.Empty;
switch (mDocumentSplitCriteria)
{
case DocumentSplitCriteria.PageBreak:
partType = "Page";
break;
case DocumentSplitCriteria.ColumnBreak:
partType = "Column";
break;
case DocumentSplitCriteria.SectionBreak:
partType = "Section";
break;
case DocumentSplitCriteria.HeadingParagraph:
partType = "Paragraph from heading";
break;
}
string partFileName = $"{mOutFileName} part {++mCount}, of type {partType}{Path.GetExtension(args.DocumentPartFileName)}";
// Di seguito sono riportati due modi per specificare dove Aspose.Words salverà ciascuna parte del documento.
// 1 - Imposta un nome file per il file della parte di output:
args.DocumentPartFileName = partFileName;
// 2 - Crea un flusso personalizzato per il file della parte di output:
args.DocumentPartStream = new FileStream(ArtifactsDir + partFileName, FileMode.Create);
Assert.True(args.DocumentPartStream.CanWrite);
Assert.False(args.KeepDocumentPartStreamOpen);
}
private int mCount;
private readonly string mOutFileName;
private readonly DocumentSplitCriteria mDocumentSplitCriteria;
}
/// <summary>
/// Imposta nomi di file personalizzati per i file di immagine creati da una conversione HTML.
/// </summary>
public class SavedImageRename : IImageSavingCallback
{
public SavedImageRename(string outFileName)
{
mOutFileName = outFileName;
}
void IImageSavingCallback.ImageSaving(ImageSavingArgs args)
{
string imageFileName = $"{mOutFileName} shape {++mCount}, of type {args.CurrentShape.ShapeType}{Path.GetExtension(args.ImageFileName)}";
// Di seguito sono riportati due modi per specificare dove Aspose.Words salverà ciascuna parte del documento.
// 1 - Imposta un nome file per il file immagine di output:
args.ImageFileName = imageFileName;
// 2 - Crea un flusso personalizzato per il file immagine di output:
args.ImageStream = new FileStream(ArtifactsDir + imageFileName, FileMode.Create);
Assert.True(args.ImageStream.CanWrite);
Assert.True(args.IsImageAvailable);
Assert.False(args.KeepImageStreamOpen);
}
private int mCount;
private readonly string mOutFileName;
}
Guarda anche
- class DocumentPartSavingArgs
- spazio dei nomi Aspose.Words.Saving
- assemblea Aspose.Words