Określ opcje zapisywania

Podczas zapisywania dokumentu możesz ustawić pewne zaawansowane właściwości. Aspose.Words udostępnia klasę SaveOptions, która pozwala na bardziej precyzyjną kontrolę procesu zapisu. Istnieją przeciążenia metody Save akceptujące obiekt SaveOptions – powinien to być obiekt klasy wywodzącej się z klasy SaveOptions. Każdy format zapisu ma odpowiednią klasę, która przechowuje opcje zapisu dla tego formatu zapisu, na przykład istnieje PdfSaveOptions do zapisywania w formacie PDF, MarkdownSaveOptions do zapisywania w formacie Markdown lub ImageSaveOptions do zapisywania do obrazu. W tym artykule przedstawiono przykłady pracy z niektórymi klasami opcji pochodzącymi z formatu SaveOptions.

Poniższy przykład kodu pokazuje, jak ustawić opcje zapisywania przed zapisaniem dokumentu w formacie 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);

W artykule opisano kilka właściwości, którymi możesz sterować podczas zapisywania dokumentu.

Zaszyfruj dokument hasłem

Użyj właściwości Password, aby uzyskać lub ustawić hasło do zaszyfrowanego dokumentu. Użyj właściwości Password odpowiedniej klasy, aby pracować z wybranym formatem dokumentu.

Na przykład, zapisując dokument w formacie DOC lub DOT, użyj właściwości Password klasy DocSaveOptions.

Poniższy przykład kodu pokazuje, jak ustawić hasło w celu zaszyfrowania dokumentu przy użyciu metody szyfrowania 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);

Podczas zapisywania dokumentu w formacie Odt należy skorzystać z właściwości Password klasy OdtSaveOptions.

Poniższy przykład kodu pokazuje, jak załadować i zapisać OpenDocument zaszyfrowany hasłem:

// 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"));

Nie wszystkie formaty obsługują szyfrowanie i korzystanie z właściwości Password.

Pokaż powiadomienia o postępie zapisywania dokumentu

Aspose.Words zapewnia możliwość wykorzystania właściwości ProgressCallback do otrzymywania powiadomień o postępie zapisywania dokumentu.

Jest teraz dostępny podczas zapisywania w formatach DOCX, FlatOpc, DOCM, DOTM, DOTX, HTML, MHTML, EPUB, XamlFlow, XamlFlowPack lub TXT.

Zaktualizuj czas utworzenia dokumentu

Aspose.Words zapewnia możliwość wykorzystania właściwości CreatedTime do uzyskania lub ustawienia daty utworzenia dokumentu w formacie UTC. Możesz także zaktualizować tę wartość przed zapisaniem, korzystając z opcji UpdateCreatedTimeProperty.

Poniższy przykład kodu pokazuje, jak zaktualizować czas utworzenia dokumentu:

// 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);

Zaktualizuj ostatnio zapisaną właściwość

Aspose.Words umożliwia wykorzystanie właściwości UpdateLastSavedTimeProperty do pobrania lub ustawienia wartości określającej, czy właściwość LastSavedTime ma być aktualizowana przed zapisaniem.

Poniższy przykład kodu pokazuje, jak ustawić tę właściwość i zapisać dokument:

// 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);

Kontroluj zasoby zewnętrzne podczas zapisywania dokumentu w formacie HTML lub SVG

Aby przekonwertować HTML lub SVG na format PDF, wystarczy wywołać metodę Save i podać nazwę pliku z rozszerzeniem “.PDF”. Jeśli chcesz załadować obrazy, CSS itp. ze źródeł zewnętrznych, możesz użyć IResourceSavingCallback.

Poniższy przykład kodu pokazuje, jak przekonwertować HTML na PDF i wczytać obrazy ze źródeł zewnętrznych:

// 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;
}

Zapisz czarno-biały obraz w formacie jeden bit na piksel

Do sterowania opcjami zapisywania obrazu wykorzystywana jest klasa ImageSaveOptions. Na przykład możesz użyć właściwości PixelFormat, aby ustawić format pikseli dla generowanych obrazów. Należy pamiętać, że format pikseli obrazu wyjściowego może różnić się od ustawionej wartości ze względu na pracę GDI+.

Poniższy przykład kodu pokazuje, jak zapisać czarno-biały obraz w formacie jeden bit na piksel:

// 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);