OfficeIMO.Bibliography
3.4.0
Prefix Reserved
dotnet add package OfficeIMO.Bibliography --version 3.4.0
NuGet\Install-Package OfficeIMO.Bibliography -Version 3.4.0
<PackageReference Include="OfficeIMO.Bibliography" Version="3.4.0" />
<PackageVersion Include="OfficeIMO.Bibliography" Version="3.4.0" />
<PackageReference Include="OfficeIMO.Bibliography" />
paket add OfficeIMO.Bibliography --version 3.4.0
#r "nuget: OfficeIMO.Bibliography, 3.4.0"
#:package OfficeIMO.Bibliography@3.4.0
#addin nuget:?package=OfficeIMO.Bibliography&version=3.4.0
#tool nuget:?package=OfficeIMO.Bibliography&version=3.4.0
OfficeIMO.Bibliography
OfficeIMO.Bibliography is the citation-data owner for OfficeIMO. It provides one editable model and deterministic codecs for BibTeX, BibLaTeX, CSL JSON, RIS, PubMed NBIB/MEDLINE, and EndNote XML without depending on Word or a citation-style engine.
Install the package from NuGet:
dotnet add package OfficeIMO.Bibliography
Read, edit, write, and reopen
using OfficeIMO.Bibliography;
BibliographyReadResult read = BibliographyDocument.Load(
"library.bib",
BibliographyFormat.BibLatex);
BibliographyItem item = read.Document.Items[0];
item.Title = "A corrected title";
item.SetIdentifier("DOI", "10.1000/example");
BibliographyWriteResult saved = read.Document.Save(
"library-edited.bib",
new BibliographyWriteOptions {
Format = BibliographyFormat.BibLatex,
Mode = BibliographyWriterMode.Canonical
});
BibliographyReadResult reopened = BibliographyDocument.Load(
"library-edited.bib",
BibliographyFormat.BibLatex);
The model includes citation keys, typed item kinds, personal and corporate contributors, partial, literal, and ranged dates, identifiers, titles, publication fields, pagination, URLs, keywords, notes, and ordered native fields. Unknown source fields remain available in item, name, and date NativeFields; BibTeX directives and safe document-level EndNote XML elements remain available in NativeEntries.
Preserve the source or normalize it
Preserve mode is the default. An unchanged document loaded from bytes returns the original bytes exactly, including its BOM and line endings. An unchanged document parsed from text returns the original text exactly.
After an edit, the writer produces deterministic canonical syntax for the selected format. It retains unknown native fields when the destination is the same format and the field can be written safely. This is source-backed round-trip editing, but it does not promise to retain whitespace and comments inside a modified record at their original positions.
BibliographyWriteResult exact = read.Document.Write();
bool reusedOriginalBytes = exact.UsedOriginalSource;
BibliographyWriteResult normalized = read.Document.Write(
new BibliographyWriteOptions {
Mode = BibliographyWriterMode.Canonical,
LineEnding = "\n"
});
Convert with explicit fidelity evidence
Every write returns a BibliographyConversionReport. Native fields that cannot be represented by another format are reported as Approximated or Omitted; they are never silently discarded.
BibliographyWriteResult csl = read.Document.Write(
new BibliographyWriteOptions {
Format = BibliographyFormat.CslJson,
Mode = BibliographyWriterMode.Canonical,
RequireNoLoss = true
});
RequireNoLoss throws BibliographyConversionLossException when the destination would approximate or omit data. For permissive conversion, leave it disabled and inspect csl.Report.Diagnostics.
File, stream, text, and async APIs
BibliographyDocument supports:
Parsefrom text, with explicit format or bounded content detectionLoadandLoadAsyncfrom paths and streamsWriteto text and bytesSaveandSaveAsyncto paths and caller-owned streams
Path loading recognizes .bib, .json, .ris, .nbib, .medline, and .xml. Unknown extensions use bounded content detection. Parsing observes item, value, input-size, nesting, and cancellation limits through BibliographyReadOptions.
Boundaries
The package parses data only. It does not execute TeX, fetch DOI or PubMed metadata, resolve remote resources, render citations or bibliographies, manage attachments, remove DRM, or decrypt resources. Citation-style rendering is a separate product boundary.
OfficeIMO.Word does not depend on this package.
See the bibliography support matrix for exact field, preservation, conversion, and security behavior.
Dependencies
OfficeIMO.Bibliography has no dependency on another OfficeIMO package. It uses System.Text.Json for CSL JSON and System.Text.Encoding.CodePages for declared legacy XML encodings on compatibility targets. It has no dependency on OfficeIMO.Word, the Open XML SDK, a TeX runtime, EndNote, or a network client.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- System.Text.Encoding.CodePages (>= 8.0.0)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
.NETStandard 2.0
- System.Text.Encoding.CodePages (>= 8.0.0)
- System.Text.Json (>= 10.0.7 && < 11.0.0)
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.