Especificar opciones de guardar
Al guardar un documento, puede configurar algunas propiedades avanzadas. Aspose.Words le proporciona la clase SaveOptions, que permite un control más preciso del proceso de guardado. Hay sobrecargas del método Save que acepta un objeto SaveOptions; debería ser un objeto de una clase derivada de la clase SaveOptions. Cada formato de guardado tiene una clase correspondiente que contiene opciones de guardado para este formato de guardado, por ejemplo, hay PdfSaveOptions para guardar en formato PDF, MarkdownSaveOptions para guardar en formato Markdown u ImageSaveOptions para guardar en una imagen. Este artículo proporciona ejemplos de cómo trabajar con algunas clases de opciones derivadas de SaveOptions.
El siguiente ejemplo de código muestra cómo configurar las opciones de guardar antes de guardar el documento en HTML:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); | |
string fileName = "TestFile RenderShape.docx"; | |
Document doc = new Document(dataDir + fileName); | |
// This is the directory we want the exported images to be saved to. | |
string imagesDir = Path.Combine(dataDir, "Images"); | |
// The folder specified needs to exist and should be empty. | |
if (Directory.Exists(imagesDir)) | |
Directory.Delete(imagesDir, true); | |
Directory.CreateDirectory(imagesDir); | |
// Set an option to export form fields as plain text, not as HTML input elements. | |
HtmlSaveOptions options = new HtmlSaveOptions(SaveFormat.Html); | |
options.ExportTextInputFormFieldAsText = true; | |
options.ImagesFolder = imagesDir; | |
dataDir = dataDir + "Document.SaveWithOptions_out.html"; | |
doc.Save(dataDir, options); | |
El artículo describe algunas propiedades que puede controlar al guardar un documento.
Cifrar un documento con una contraseña
Utilice la propiedad Password para obtener o establecer una contraseña para un documento cifrado. Utilice la propiedad Password de la clase correspondiente para trabajar con el formato de documento seleccionado.
Por ejemplo, al guardar un documento en formato DOC o DOT, utilice la propiedad Password de la clase DocSaveOptions.
El siguiente ejemplo de código muestra cómo establecer una contraseña para cifrar un documento utilizando el método de cifrado RC4:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "Document.docx"); | |
DocSaveOptions docSaveOptions = new DocSaveOptions(); | |
docSaveOptions.Password = "password"; | |
dataDir = dataDir + "Document.Password_out.docx"; | |
doc.Save(dataDir, docSaveOptions); |
Al guardar un documento en formato Odt, utilice la propiedad Password de la clase OdtSaveOptions.
El siguiente ejemplo de código muestra cómo cargar y guardar OpenDocument cifrado con una contraseña:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + @"encrypted.odt", new Aspose.Words.LoadOptions("password")); | |
doc.Save(dataDir + "out.odt", new OdtSaveOptions("newpassword")); |
No todos los formatos admiten el cifrado y el uso de la propiedad Password.
Mostrar notificaciones de progreso de guardado de documentos
Aspose.Words brinda la posibilidad de utilizar la propiedad ProgressCallback para recibir notificaciones sobre el progreso del guardado del documento.
Ahora está disponible al guardar en formatos DOCX, FlatOpc, DOCM, DOTM, DOTX, HTML, MHTML, EPUB, XamlFlow, XamlFlowPack o TXT.
Actualizar la hora de creación del documento
Aspose.Words ofrece la posibilidad de utilizar la propiedad CreatedTime para obtener o establecer la fecha de creación del documento en UTC. También puede actualizar este valor antes de guardarlo usando la opción UpdateCreatedTimeProperty.
El siguiente ejemplo de código muestra cómo actualizar la hora de creación del documento:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(MyDir + "Rendering.docx"); | |
PdfSaveOptions saveOptions = new PdfSaveOptions { UpdateLastPrintedProperty = true }; | |
doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.UpdateIfLastPrinted.pdf", saveOptions); |
Actualizar la última propiedad guardada
Aspose.Words ofrece la posibilidad de utilizar la propiedad UpdateLastSavedTimeProperty para obtener o establecer un valor que determine si la propiedad LastSavedTime se actualiza antes de guardar.
El siguiente ejemplo de código muestra cómo establecer esta propiedad y guardar el documento:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "Document.docx"); | |
OoxmlSaveOptions ooxmlSaveOptions = new OoxmlSaveOptions(); | |
ooxmlSaveOptions.UpdateLastSavedTimeProperty = true; | |
dataDir = dataDir + "UpdateLastSavedTimeProperty_out.docx"; | |
// Save the document to disk. | |
doc.Save(dataDir, ooxmlSaveOptions); |
Controle los recursos externos al guardar un documento en HTML o SVG
Para convertir HTML o SVG a PDF, simplemente invoque el método Save y especifique un nombre de archivo con la extensión “.PDF”. Si desea cargar imágenes, CSS, etc. desde fuentes externas, puede utilizar IResourceSavingCallback.
El siguiente ejemplo de código muestra cómo convertir HTML a PDF y cargar imágenes de fuentes externas:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
public class ImageLoadingWithCredentialsHandler : IResourceLoadingCallback | |
{ | |
public ImageLoadingWithCredentialsHandler() | |
{ | |
mWebClient = new WebClient(); | |
} | |
public ResourceLoadingAction ResourceLoading(ResourceLoadingArgs args) | |
{ | |
if (args.ResourceType == ResourceType.Image) | |
{ | |
Uri uri = new Uri(args.Uri); | |
if (uri.Host == "www.aspose.com") | |
mWebClient.Credentials = new NetworkCredential("User1", "akjdlsfkjs"); | |
else | |
mWebClient.Credentials = new NetworkCredential("SomeOtherUserID", "wiurlnlvs"); | |
// Download the bytes from the location referenced by the URI. | |
byte[] imageBytes = mWebClient.DownloadData(args.Uri); | |
args.SetData(imageBytes); | |
return ResourceLoadingAction.UserProvided; | |
} | |
else | |
{ | |
return ResourceLoadingAction.Default; | |
} | |
} | |
private WebClient mWebClient; | |
} |
Guarde una imagen en blanco y negro con formato de un bit por píxel
Para controlar las opciones de guardado de imágenes, se utiliza la clase ImageSaveOptions. Por ejemplo, puede utilizar la propiedad PixelFormat para establecer el formato de píxeles de las imágenes generadas. Tenga en cuenta que el formato de píxeles de la imagen de salida puede diferir del valor establecido debido al trabajo de GDI+.
El siguiente ejemplo de código muestra cómo guardar una imagen en blanco y negro con un formato de bit por píxel:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
ImageSaveOptions opt = new ImageSaveOptions(SaveFormat.Png); | |
PageSet pageSet = new PageSet(new PageRange(1, 1)); | |
opt.PageSet = pageSet; | |
opt.ImageColorMode = ImageColorMode.BlackAndWhite; | |
opt.PixelFormat = ImagePixelFormat.Format1bppIndexed; | |
dataDir = dataDir + "Format1bppIndexed_Out.Png"; | |
doc.Save(dataDir, opt); |